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

Пример работы с session есть в официальном туториале
https://flask.palletsprojects.com/en/1.1.x/tutorial/
https://github.com/pallets/flask/tree/master/examples/tutorial
freeddos
А если база данных не особо нужна и в реализации небольшой программы в “10 строк” и информацию достаточно хранить между перегрузками сервера.
Предложенный мной вариант это “некрасиво” и есть более логичное решение?
FishHook
Предложенный вами вариант просто не работает. Хранить можно либо на диске, либо в памяти процесса, либо в БД в памяти. Веб работает так, что вы никогда не знаете, к какому именно процессу будет обращен следующий запрос. То есть вам нужна БД, либо в памяти, либо на диске.
py.user.next
freeddos
и информацию достаточно хранить между перегрузками сервера.
Flask работает так, что каждый запрос создаёт абсолютно новую среду, которая ничего не помнит про предыдущие запросы. session точно так же создаётся заново каждый раз. Просто там внутри алгоритм, который проверяет, что прислал браузер (в заголовках запроса) через печенье, сохранённое в браузере во время предыдущего запроса. То есть session ничего не хранит, в ней просто алгоритм, который что-то создаёт для сохранения браузером и потом этот же алгоритм может проверить данные, которые браузер ему пришлёт на проверку.

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

Если пользователей несколько, то и база данных нужна такая, которая не даст двум одновременно запрашивающим/сохраняющим пользователям перемешать их данные между собой или наслоить их как-то. Поэтому и подключают такую базу данных, которая блокирует одного пользователя, пока с данными работает второй пользователь, или которая создаёт два разных варианта одних и тех же данных, а потом их правильно сливает.
freeddos
Я понял основной ход мысли. Спасибо большое за пояснения и ответы.
Буду использовать базу данных для хранения и разделять запись по идентификаторам пользователей.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB