一、基礎
cookie儲存在浏覽器本地,格式:iii="8jblpb9g2l5c9xvofhv5pt8c0v967z5t"
session儲存在伺服器端。格式:{"cookie值":{"isLogin":True,"username":"xxx"},cookie:{}}
二、流程
- 伺服器生成一段字元串
- 把字元串發送給用戶端浏覽器,同時将字元串當做key放置session資訊
- 在使用者的session對應的value(字典)裡設定任意值
三、錯誤解決
報錯:no such table: django_session
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL2gjNwYDO0UTMtMDMzMzM0QzNxYTMzAjNxAjMtAzN4cjM48CXzAjNxAjMvwFM3gzNygzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
原因:
Django的session是放在資料庫裡,要先初始化表。
解決:
項目目錄路徑> python manage.py migrate
四、執行個體
1、需求
訂單頁面未登入不能通路,直接跳轉到登入頁面。
2、登入頁面
app01/views.py
1 2 3 4 5 6 7 8 | |
urls.py
1 2 3 4 5 | |
templates/login.html
1 2 3 4 5 6 7 | |
4、訂單頁面
app01/views.py
1 2 3 4 5 6 | |
urls.py
1 2 3 4 5 6 | |
5、浏覽器
6、資料庫
7、擴充:訂單頁面右上角顯示登入使用者
還可以定義其它值,如username,登入成功的時候就設定上,然後頁面可以根據不同的使用者顯示不同的資料。
views.py
1 2 3 4 5 6 7 8 9 | |
views.py
1 2 3 4 5 6 7 | |
oreder.html
1 2 3 | |
8、登出
order.html
1 2 3 4 | |
urls.py
1 2 3 4 5 6 7 8 | |
views.py
1 2 3 | |
五、cookie逾時時間
settings.py
1 | |
session也有
1 2 3 4 5 | |
更多
https://docs.djangoproject.com/en/1.9/topics/http/sessions/
http://docs.30c.org/djangobook2/chapter14/
https://docs.djangoproject.com/en/1.9/ref/settings/#settings-sessions
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/daliangtou/p/5284448.html