Size: a a a

2020 October 28

V

Vladi in Python Flask
Gunaevart
Суть в том что при нажатии кнопки нужно послать id клиента и без перезпгрузки отобразить его данные в модалке вроде как бы всё просто
в чём проблема то? Данные считай из ответа сервера
источник

G

Gunaevart in Python Flask
Vladi
в чём проблема то? Данные считай из ответа сервера
1. Проблема в том что данные считываються  но как str и при попытки преобразовать данные например в int выдаёт ошибку TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
2. как блин синхронно отправить их обратно
источник

V

Vladi in Python Flask
Никита
Добрый вечер!
Кто-нибудь, пожалуйста, подскажите, что я делаю не так.

Что дано.
У меня всего два запроса, оба POST.
Первый - login. При его обработке происходит запись id текущего пользователя в объект session
Второй создаёт запись в БД.
Есть функция load_logged_in_user, обёрнутая в декоратор @bp.before_app_request.
Она вызывается при проверке авторизирован ли пользователь, отправляющий второй запрос.
Втоорй запрос отправляется после успешного завершения первого

Вопрос.
Почему объект session в load_logged_in_user равен None?
user['id'] это что?
источник

Н

Никита in Python Flask
Vladi
user['id'] это что?
В user лежит итог запроса к базе: user = db.execute( ... ).fetchone(). Обращение user['id'] возвращает целое число
источник

V

Vladi in Python Flask
Gunaevart
1. Проблема в том что данные считываються  но как str и при попытки преобразовать данные например в int выдаёт ошибку TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
2. как блин синхронно отправить их обратно
// TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
не вижу ничего такого в коде

2. Ты отправил запрос с клиента, обработал сервер, сервер отдал ответ клиенту.
источник

V

Vladi in Python Flask
Никита
В user лежит итог запроса к базе: user = db.execute( ... ).fetchone(). Обращение user['id'] возвращает целое число
где и в какой момент вызывается
источник

G

Gunaevart in Python Flask
Vladi
// TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
не вижу ничего такого в коде

2. Ты отправил запрос с клиента, обработал сервер, сервер отдал ответ клиенту.
источник

V

Vladi in Python Flask
Gunaevart
мне твои схемы не нужны, я в коде не вижу твоих преобразований
источник

GB

Gleb B in Python Flask
Господа,  возник вопрос по докеру. Смотрю курс от linux academy и в сети все мануалы обходят эту тему.
Что для разработки небольшого приложения оптимальнее архитектурно:
1. фласк приложение примонтировано как volume к контейнеру с uwsgi или gunicorn, который уже общается в рамках сети с nginx контейнером?
2. Или я  собираю образ из приложения и его уже деплою?
источник

Н

Никита in Python Flask
Vladi
где и в какой момент вызывается
С фронта идёт запрос http://.../login с данными пользователя. В обработчике на беке из базы берётся запись по пришедшими со фронта параметрами. Если соответствующая параметрам запись есть, в session кладётся id пользователя, взятое из найденной в базе записи
источник

V

Vladi in Python Flask
Никита
С фронта идёт запрос http://.../login с данными пользователя. В обработчике на беке из базы берётся запись по пришедшими со фронта параметрами. Если соответствующая параметрам запись есть, в session кладётся id пользователя, взятое из найденной в базе записи
Эм, это понятно, вопрос в другом, ты уверен, что сохраняешь изначально не None?
источник

V

Vladi in Python Flask
Gleb B
Господа,  возник вопрос по докеру. Смотрю курс от linux academy и в сети все мануалы обходят эту тему.
Что для разработки небольшого приложения оптимальнее архитектурно:
1. фласк приложение примонтировано как volume к контейнеру с uwsgi или gunicorn, который уже общается в рамках сети с nginx контейнером?
2. Или я  собираю образ из приложения и его уже деплою?
У меня на проде два образа
Nginx
Flask + gunicorn

volume только статика, файлы проекта изначально в образе
источник

GB

Gleb B in Python Flask
понял, спс)
источник

V

Vladi in Python Flask
Если файлы в образе, позволяет быстро откатиться на старую версию (не рассматривая ещё миграции).
источник

V

Vladi in Python Flask
Но для dev окружения идёт как volume для файлов проекта, так проще проверять, чем пересобирать образ.
источник

GB

Gleb B in Python Flask
Vladi
Но для dev окружения идёт как volume для файлов проекта, так проще проверять, чем пересобирать образ.
источник

Н

Никита in Python Flask
Vladi
Эм, это понятно, вопрос в другом, ты уверен, что сохраняешь изначально не None?
В этом уверен
источник

V

Vladi in Python Flask
Никита
В этом уверен
Первый запрос всегда будет выдавать None, и попробуй на время теста убрать .clear()
источник

V

Vladi in Python Flask
https://pythonise.com/series/learning-flask/python-before-after-request
Как видишь тут нет никаких проблем с этим
источник

Н

Никита in Python Flask
Vladi
Первый запрос всегда будет выдавать None, и попробуй на время теста убрать .clear()
Я нашёл, что сделать, чтобы заработало, но не до конца понял, почему оно не работало в первом случае. У меня на 3000 порте работает фронт, а на 5000 бек. Я хожу на бек при отключённых корсах с 3000-го порта. В этом случае session обнуляется после завершения очередного запроса. Когда же я собрал фронт и открыл его на 5000 порте (фласк ищет статику там, куда вебпак кладёт фронтовую сборку), у меня session не обнуляется и я спокойно могу слать запросы, проверяющие объект session
источник