Size: a a a

2020 March 14

ПП

Проксимов Прксимович in Python Flask
И что?
источник

ПП

Проксимов Прксимович in Python Flask
Я не вижу проблемы, честно
источник

T

Tishka17 in Python Flask
Да все то же.
1. Обработчики тасков регистрируются в аппе на момент их описания. А апп создаётся лениво в мейне

2. Модуль с тасками начинает зависеть от основного модуля, где создаётся приложение. А не наоборот

Либо мы получим волшебные неиспользуемые импорты, либо циклические ссылки, либо и то и то
источник

AG

Anton Guzun in Python Flask
да, столкнулся с циклическими импортами, когда убрал фабрику и сделал все на глобальных
Но везде в доках юзают глобальные аппы, а работа с контекстами еще более муторной для меня оказалась
источник

A

Alex in Python Flask
Tishka17
Да все то же.
1. Обработчики тасков регистрируются в аппе на момент их описания. А апп создаётся лениво в мейне

2. Модуль с тасками начинает зависеть от основного модуля, где создаётся приложение. А не наоборот

Либо мы получим волшебные неиспользуемые импорты, либо циклические ссылки, либо и то и то
да, потому что вот этот пример с глобальным аппом подходит только для простого кейса с одним файлом
источник

AG

Anton Guzun in Python Flask
логгер фласка требует импорта app, инициализация селери тоже. Когда пытаюсь делать иначе появляется ощущение, будто борюсь с фреймворком
источник

A

Alex in Python Flask
а вообще у celery есть autodiscovery тасков
источник

A

Alex in Python Flask
без необходимости их регистрировать напрямую в инстансе аппа
источник

AG

Anton Guzun in Python Flask
Alex
без необходимости их регистрировать напрямую в инстансе аппа
если работать с  flask-sqlchemy, появляется проблема контекста
источник

T

Tishka17 in Python Flask
Не надо работать с фласк скуэлалхмией, если тебе надо работать с базой не только из фласка
источник

A

Alex in Python Flask
Anton Guzun
если работать с  flask-sqlchemy, появляется проблема контекста
не работай с flask-sqlalchemy в celery
источник

A

Alex in Python Flask
тебе все равно в celery нужно управлять сессией алхимии, flask-sqlalchemy это ни разу не предоставляет.
источник

AG

Anton Guzun in Python Flask
разумно, а подскажите паттерны менеджеров базы, как это вообще правильно делать? Чтобы не открывать и не закрывать сессию вручную и тд
источник

A

Alex in Python Flask
Anton Guzun
разумно, а подскажите паттерны менеджеров базы, как это вообще правильно делать? Чтобы не открывать и не закрывать сессию вручную и тд
1. для паттернов сессии тебе нужно почитать документацию алхимии. там как работать с сессиями подробно разобрано.
2. сессии тебе открывать и закрывать все равно придется, в celery думаю можно расширить базовый класс таска, чтобы не делать это каждый раз руками.
источник

AG

Anton Guzun in Python Flask
Спасибо, гляну еще раз доки.
Имел ввиду аналог менеджеров в джанго.
Пока придумал следующий вариант:
def User(Model):
   id
   name
   ...

def BaseModelManager():
   model = None
   
   def create():
       ...
   
   def delete():
       ...
   
def UserModelManager(BaseModelManager):
   model = User
источник

AG

Anton Guzun in Python Flask
в методах менеджера и скрываем все открытия и закрытия сессий и тд
источник

T

Tishka17 in Python Flask
Что за менеджеры в джанге?
источник

T

Tishka17 in Python Flask
Как их юзать?
источник

A

Alex in Python Flask
При чем тут менеджеры в джанге к работе с сессией и подключениями
источник

AG

Anton Guzun in Python Flask
при чем тут джанга?
источник