Вы не используете куки, вы используете данные сеанса.Это совершенно другое.Файлы cookie хранятся в браузере, сеансы хранятся на сервере.Поскольку идея сеанса заключается в том, что он является боковым, вам придется вручную реализовать любую логику, относящуюся к конкретному пути, которую вы имеете в виду.
Если вы хотите использовать реальный файл cookie с определенным путем, этопросто и задокументировано в документах web2py :
response.cookies['mycookie'] = 'somevalue'
response.cookies['mycookie']['expires'] = 24 * 3600
response.cookies['mycookie']['path'] = '/'
В чем разница между сеансом и файлом cookie? Файл cookie представляет собой один фрагмент информации хранится в браузере .Например, если вы хотите отслеживать содержимое корзины покупок, а также настройки размера шрифта, вы можете сохранить несколько файлов cookie, например:
- SHOPPING_CART: Item1, Item2, Item3
- FONT_SIZE: 12pt
- ИМЯ: Фред
Каждая из этих переменных будет храниться в браузере с файлами cookie.В сеансе вы сохраняете только один фрагмент информации в браузере: session_id:
Затем на стороне сервера у вас будет база данных сеансов, которая может выглядеть следующим образом:
| SESSION_ID | KEY | VALUE
---------------------------------------------------
| 56a3y678 | shopping-cart | Item1,Item2,Item3
| 56a3y678 | font-size | 12pt
| 56a3y678 | name | Fred
Хранение информации, подобной этой стороне сервера, имеет ряд преимуществ.Например, вы можете хранить больше информации, чем может позволить браузер.Кроме того, поскольку сервер поддерживает свою собственную базу данных, вы можете доверять ей более безопасно;в то время как cookie is_admin_user нельзя доверять, переменная сеанса, как правило, может.
Недостатком, очевидно, является то, что вместо того, чтобы полагаться на браузер для обновления всего, вы полагаетесь на программное обеспечение вашего сервера.Так, например, если у вас есть 10 веб-серверов и пользователи переключаются между ними, они все должны общаться с одной и той же базой данных сеансов, чтобы работать правильно.