Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 4, 2019 14:29:44

freeddos
Зарегистрирован: 2019-08-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Хранение переменных в сессиях Flask

Здравствуйте.
Прошу не закидывать шапками недавно связался с Flack, хочу понять логику реализации.
Имею переменную типа namedtuple для хранения вводимых полей <input> с формы (записываю тестовую запись и время, как записная книжка).
Но хочу чтобы пользователи видели только свои записи в сессии.
Мне нужно использовать session? Но как?
В переменную namedtuple записывать три поля ‘id сессиии’, ‘текст’, ‘время’, и при выводе смотреть на id сессии и выдавать нужную запись.
Или есть более элегантное решение?

Офлайн

#2 Авг. 4, 2019 14:56:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Хранение переменных в сессиях Flask

freeddos
Мне нужно использовать session?
Надо использовать базу данных. session используется только для получения прав на доступ.

Пример работы с session есть в официальном туториале
https://flask.palletsprojects.com/en/1.1.x/tutorial/
https://github.com/pallets/flask/tree/master/examples/tutorial



Отредактировано py.user.next (Авг. 4, 2019 14:58:45)

Офлайн

#3 Авг. 4, 2019 15:30:47

freeddos
Зарегистрирован: 2019-08-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Хранение переменных в сессиях Flask

А если база данных не особо нужна и в реализации небольшой программы в “10 строк” и информацию достаточно хранить между перегрузками сервера.
Предложенный мной вариант это “некрасиво” и есть более логичное решение?

Офлайн

#4 Авг. 4, 2019 22:19:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Хранение переменных в сессиях Flask

Предложенный вами вариант просто не работает. Хранить можно либо на диске, либо в памяти процесса, либо в БД в памяти. Веб работает так, что вы никогда не знаете, к какому именно процессу будет обращен следующий запрос. То есть вам нужна БД, либо в памяти, либо на диске.



Офлайн

#5 Авг. 5, 2019 00:01:53

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Хранение переменных в сессиях Flask

freeddos
и информацию достаточно хранить между перегрузками сервера.
Flask работает так, что каждый запрос создаёт абсолютно новую среду, которая ничего не помнит про предыдущие запросы. session точно так же создаётся заново каждый раз. Просто там внутри алгоритм, который проверяет, что прислал браузер (в заголовках запроса) через печенье, сохранённое в браузере во время предыдущего запроса. То есть session ничего не хранит, в ней просто алгоритм, который что-то создаёт для сохранения браузером и потом этот же алгоритм может проверить данные, которые браузер ему пришлёт на проверку.

Ты не можешь ничего сохранить во Flask. Можешь только подключить ему память со стороны и настроить его так, чтобы он ходил туда и сохранял там данные.

Если пользователей несколько, то и база данных нужна такая, которая не даст двум одновременно запрашивающим/сохраняющим пользователям перемешать их данные между собой или наслоить их как-то. Поэтому и подключают такую базу данных, которая блокирует одного пользователя, пока с данными работает второй пользователь, или которая создаёт два разных варианта одних и тех же данных, а потом их правильно сливает.



Отредактировано py.user.next (Авг. 5, 2019 00:07:28)

Офлайн

#6 Авг. 5, 2019 00:27:08

freeddos
Зарегистрирован: 2019-08-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Хранение переменных в сессиях Flask

Я понял основной ход мысли. Спасибо большое за пояснения и ответы.
Буду использовать базу данных для хранения и разделять запись по идентификаторам пользователей.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version