Size: a a a

2020 May 26

JW

John Wayne in Python Flask
palage4a
А чем проблема поставить себе либу, если она нужна тебе?
я об альтернативах спрашиваю, может есть способ настроить фласк алхимию, чтобы и рыбку(чистые модели алхимии) и молочком запить(пагинация из фласк алхимии)
источник

p

palage4a in Python Flask
John Wayne
я об альтернативах спрашиваю, может есть способ настроить фласк алхимию, чтобы и рыбку(чистые модели алхимии) и молочком запить(пагинация из фласк алхимии)
Есть готовые решения в виде небольших надстроек.
Не понимаю чем тебя это не устраивает.
источник

JW

John Wayne in Python Flask
palage4a
Есть готовые решения в виде небольших надстроек.
Не понимаю чем тебя это не устраивает.
дело в не в этом, я спросил есть ли work around подружить 2 более большие либы, если нет буду мини надстройки юзать
источник

AS

Andrey Sapronov in Python Flask
Доброй ночи, ребята! Нужна Ваша помощь в решении проблемы с flask_socketio. Был бы очень благодарен!
Написал приложение, все ок, общение с фронтом происходит через вебсокет.
Принимаю сообщения через декоратор socketio.on('event') в главном потоке.
Отправляю уже в другом потоке с бизнес логикой программы:
socketio.emit("new item", {'data': item}). Получается программа разбита на две части: бизнес логика и web ui. В бизнес логике +- 100 потоков работает. Запускаю через gevent.WSGIServer, так же пробовал через socketio.run(). Проблема в том что на моем пк(windows) все работает отлично, но когда дошло до деплоймента(ubuntu 20.04) заметил что сервер отправляет сообщения пачками примерно каждые 5-6 сек, то есть сервер как бы отправил сообщение но фронт получит его в следущей пачке. Погуглив нашел похожие проблемы, которые были решены при помощи gevent.monkey patch_all() или eventlet monkey_patch(). Но мне это решание не подошло так как monkey patch блокирует мою  бизнес логику в которой используется много потоков, и программа просто виснет. Пытался использовать path_all(thread=False), но не помогло. Если использовать деффолтный дев сервер фласка(нет поддержки протокола ws) с лонг пуллингом то все работает довольно быстро, без фризов. Уже день сижу над этой проблемой, может кто-то даст какой-то совет, заранее спасибо!
источник

V

Vlad in Python Flask
две части: бизнес логика и web ui

бизнес логика - это socketIo + flask который обрабатывает реквесты на одном порту?
источник

AT

Alex Ted in Python Flask
Andrey Sapronov
Доброй ночи, ребята! Нужна Ваша помощь в решении проблемы с flask_socketio. Был бы очень благодарен!
Написал приложение, все ок, общение с фронтом происходит через вебсокет.
Принимаю сообщения через декоратор socketio.on('event') в главном потоке.
Отправляю уже в другом потоке с бизнес логикой программы:
socketio.emit("new item", {'data': item}). Получается программа разбита на две части: бизнес логика и web ui. В бизнес логике +- 100 потоков работает. Запускаю через gevent.WSGIServer, так же пробовал через socketio.run(). Проблема в том что на моем пк(windows) все работает отлично, но когда дошло до деплоймента(ubuntu 20.04) заметил что сервер отправляет сообщения пачками примерно каждые 5-6 сек, то есть сервер как бы отправил сообщение но фронт получит его в следущей пачке. Погуглив нашел похожие проблемы, которые были решены при помощи gevent.monkey patch_all() или eventlet monkey_patch(). Но мне это решание не подошло так как monkey patch блокирует мою  бизнес логику в которой используется много потоков, и программа просто виснет. Пытался использовать path_all(thread=False), но не помогло. Если использовать деффолтный дев сервер фласка(нет поддержки протокола ws) с лонг пуллингом то все работает довольно быстро, без фризов. Уже день сижу над этой проблемой, может кто-то даст какой-то совет, заранее спасибо!
не совет по твоей проблеме, но из личного опыта - использовать фреймворк с нативной поддержкой вебсокетов: fatapi/aiohttp и т.д. и т.п.
источник

AS

Andrey Sapronov in Python Flask
Я спаршиваю данные через прокси, потом их обрабатываю, анализирую и нужные отправляю на фронт через ws
источник

AS

Andrey Sapronov in Python Flask
две части: бизнес логика и web ui

бизнес логика - это socketIo + flask который обрабатывает реквесты на одном порту?
источник

AT

Alex Ted in Python Flask
а с этими велосипедами ты будешь и дальше косплеить статую Мыслителя, а потом понадобится что-то изменить и "...снова седая ночь и снова ей доверяю я свои тайны...""
источник

AS

Andrey Sapronov in Python Flask
Alex Ted
не совет по твоей проблеме, но из личного опыта - использовать фреймворк с нативной поддержкой вебсокетов: fatapi/aiohttp и т.д. и т.п.
Понял, спасибо, дальше последую твоему совету, но сейчас уже проект готов, и много придется переписывать с фласка
источник

AT

Alex Ted in Python Flask
я тебя умоляю, там апи такое, что называется "найди десять отличий"
источник

AT

Alex Ted in Python Flask
ну и п.с. какбэ
писать на винде
вкусовщина конечно, но лично я осуждаю
источник
2020 May 27

AM

Artur Mustafin in Python Flask
источник

AM

Artur Mustafin in Python Flask
Alex Ted
ну и п.с. какбэ
писать на винде
вкусовщина конечно, но лично я осуждаю
я трижды проклят? пэшу на винде, 10ке, под vmware, на macbook pro, или последнее все грехи отпускает?
источник

Н

Назарий in Python Flask
всем привет. есть какой самый лучший способ, чтобы превратить этот массив из sqlalchemy [('itstheshevtsov',), ('sfasfas',)] в обычный список?
источник

T

Tishka17 in Python Flask
Назарий
всем привет. есть какой самый лучший способ, чтобы превратить этот массив из sqlalchemy [('itstheshevtsov',), ('sfasfas',)] в обычный список?
[x for x,*_ in rows]
источник

Н

Назарий in Python Flask
Tishka17
[x for x,*_ in rows]
а во время самого запроса sql, можно ли как-то задать, что к каждому элементу из duel_exceptions можно взять только один элемент UserData.user_name? db.session.query(UserData.user_name).filter(UserData.user_id.in_(duels_exceptions)).all()
источник

Н

Назарий in Python Flask
чтобы сразу возвращало обычный список
источник

T

Tishka17 in Python Flask
Назарий
а во время самого запроса sql, можно ли как-то задать, что к каждому элементу из duel_exceptions можно взять только один элемент UserData.user_name? db.session.query(UserData.user_name).filter(UserData.user_id.in_(duels_exceptions)).all()
насколько я понял, нельзя. Результат - всегда список туплов
источник

Н

Назарий in Python Flask
Tishka17
насколько я понял, нельзя. Результат - всегда список туплов
ок, спасибо
источник