Size: a a a

Django [ru] #STAY HOME

2020 June 26

B

BuTaMuH4uK in Django [ru] #STAY HOME
спасибо всем
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Alex Dem
А кто-нибудь знает хорошие статьи по оборачиванию DRF в django-channels?

Я помню, что Dan говорил, что можно;
но что-то я познакомившись немного с протоколом websockets + после получаса безуспешного гуглежа по сабжу начинаю очень сомневаться, что без боли в одном месте это можно реализовать
Мне кажется самое время смотреть в сторону фастапи)
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Dima Boger
Призываю @amureki. По-моему я уже это спрашивал с год назад, но может что-то поменялось?)
Я по прежнему использую model bakery, хех, меня устраивает :)
Там пару вещей надо с генераторами починить в рецептах, но у меня руки не доходят.
К сожалению так и не довелось попробовать factory_boy, ничего не скажу как они там нынче и чем лучше-хуже
источник

AD

Alex Dem in Django [ru] #STAY HOME
Nikolay Cherniy
Мне кажется самое время смотреть в сторону фастапи)
Я уже глянул :), но бегло
Мне показалось, что там будут те же проблемы
Думаешь CRUD REST на fastapi websockets будет piece of cake?
(без сарказма)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Alex Dem
Я уже глянул :), но бегло
Мне показалось, что там будут те же проблемы
Думаешь CRUD REST на fastapi websockets будет piece of cake?
(без сарказма)
Пока кажется что да) а какие проблемы? Там то оборачевать не нужно все асинхронное из коробки
источник

AD

Alex Dem in Django [ru] #STAY HOME
Nikolay Cherniy
Пока кажется что да) а какие проблемы? Там то оборачевать не нужно все асинхронное из коробки
Не, ну вопрос в том, что пока там чатики всякие пилишь - это одна история, все легко
но у тебя есть джанго приложение, для упрощения представим просто API эндпоинт и ты хочешь его сделать async
чтобы 2 юзера могли редактировать один объект в риалтайм и это красиво работало ( т.е. если юзер 1 обновил данные, юзер должен получить их без дополнительного запроса)

и тут проблемой становится почти все, включая сам протокол WS
Предположим ты натянул http протокол over WS - можно такое намудрить
Но как бы дальше?

Как устроить маршрутизацию?
У тебя в DRF сформированы урлы, но в сокетах на каждый урл же не будешь создавать новый канал?

т.е. в самой простой реализации нужна прослойка между API эндпоинтом и WebSocket каналом который будет между сервером и пользователем, которая будет транслировать это все туда-сюда
источник

AD

Alex Dem in Django [ru] #STAY HOME
@amureki, а ты не подскажешь?
Возможен ли псевдо REST over django channels/web sockets  в принципе и в частности в рамках джанго?
источник

Ю

Юрий in Django [ru] #STAY HOME
Как связаны апи эндпоинты и сокеты
источник

Ю

Юрий in Django [ru] #STAY HOME
Они отдельно живут вроде бы
источник

Ю

Юрий in Django [ru] #STAY HOME
А, перечитал, понял
источник

AD

Alex Dem in Django [ru] #STAY HOME
Мне просто интересно как тогда реализовывают крупные компании shared редактирование
Google sheets/google docs обновляет данные у тебя на странице в риал-тайм, если кто-то их поменял на другом конце
неужели дергают сервер постоянными запросами? (впрочем, это легко проверить)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Alex Dem
Не, ну вопрос в том, что пока там чатики всякие пилишь - это одна история, все легко
но у тебя есть джанго приложение, для упрощения представим просто API эндпоинт и ты хочешь его сделать async
чтобы 2 юзера могли редактировать один объект в риалтайм и это красиво работало ( т.е. если юзер 1 обновил данные, юзер должен получить их без дополнительного запроса)

и тут проблемой становится почти все, включая сам протокол WS
Предположим ты натянул http протокол over WS - можно такое намудрить
Но как бы дальше?

Как устроить маршрутизацию?
У тебя в DRF сформированы урлы, но в сокетах на каждый урл же не будешь создавать новый канал?

т.е. в самой простой реализации нужна прослойка между API эндпоинтом и WebSocket каналом который будет между сервером и пользователем, которая будет транслировать это все туда-сюда
Пытаюсь уловить проблему, но видимо сильно уже подналег на вино) но мне кажется наоборот не нужно лишних прослоек, да и о вс за тебя должен фреймворк заботится, ты только задаешь что он должен эвейтить дату, а они там уже с асинхронным фронтом делают что могут)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Nikolay Cherniy
Пытаюсь уловить проблему, но видимо сильно уже подналег на вино) но мне кажется наоборот не нужно лишних прослоек, да и о вс за тебя должен фреймворк заботится, ты только задаешь что он должен эвейтить дату, а они там уже с асинхронным фронтом делают что могут)
я изначально где-то также и представлял XD
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Alex Dem
@amureki, а ты не подскажешь?
Возможен ли псевдо REST over django channels/web sockets  в принципе и в частности в рамках джанго?
У меня пятница началась, а голова закончилась.
Вообще, тут видимо основной вопрос про conflict resolving когда у тебя двусторонняя синхронизация, нужно смотреть на диффы, modified, ну и в конце концов определить четко, как в худшем случае будет резолвиться конфликт, если не удалось мирным путем решить.
Для инспирации можешь в эти свои сервисы зайти, где ты видишь такую работу и попробовать с двух машин или аккаунтов одновременно редактировать одно и то же место и посмотреть что там в бекграунде происходит (dev tools)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Alex Dem
я изначально где-то также и представлял XD
Ну видимо мне нужно серьезный проект попробовать на нем реализовать чтобы ощутить проблемность своей ж, пока то что сделал на фастапи было не сильно сложнее хэллоуворлда)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Rust Saiargaliev
У меня пятница началась, а голова закончилась.
Вообще, тут видимо основной вопрос про conflict resolving когда у тебя двусторонняя синхронизация, нужно смотреть на диффы, modified, ну и в конце концов определить четко, как в худшем случае будет резолвиться конфликт, если не удалось мирным путем решить.
Для инспирации можешь в эти свои сервисы зайти, где ты видишь такую работу и попробовать с двух машин или аккаунтов одновременно редактировать одно и то же место и посмотреть что там в бекграунде происходит (dev tools)
Я о конфликтах уже думал, но до них еще дойти надо :D
Я пока на старте: есть API на DRF, хочу его обернуть в WebSockets (пока больше абстрактно)
и пока даже не представляю как это сделать :)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Alex Dem
Я о конфликтах уже думал, но до них еще дойти надо :D
Я пока на старте: есть API на DRF, хочу его обернуть в WebSockets (пока больше абстрактно)
и пока даже не представляю как это сделать :)
* с пометкой - не написав его чуть ли не заново и с кучей головной боли
источник

tn

tot samiy neizvestni... in Django [ru] #STAY HOME
Dima Boger
Расскажите чем пользуетесь для фабрик моделей для тестов?

factory_boy vs model_bakery vs mixer?
Factory boy брал. Вполне устраивает
источник

O

Orekhov Web Dev. in Django [ru] #STAY HOME
костыль на 10/10, как написать правильно({{ MEDIA_ROOT }} не работает по неизвестным мне причинам
источник

DB

Dima Boger in Django [ru] #STAY HOME
Orekhov Web Dev.
костыль на 10/10, как написать правильно({{ MEDIA_ROOT }} не работает по неизвестным мне причинам
{% get_media_prefix %}?
источник