cookie
定義
cookie 是保存在瀏覽器的一組鍵值對
設置 cookie
redirect("/book_list/").set_cookie("s21", "hao", max_age=7)
rep.set_signed_cookie("s21", "hao", salt="ooxx", max_age=7)
取值 cookie
request.COOKIES.get("s21")
request.get_signed_cookie("s21", default="", salt="ooxx")
實例
from functools import wraps
from django.utils.decorators import method_decorator
def login_check(func):
"""
登錄校驗裝飾器
如果cookie 驗證成功, 表示已經登錄, 則正常執行代碼
如果cookie 驗證失敗, 表示沒有登錄, 顯示登錄頁面, 並設置登錄成功後, 顯示原頁面
"""
@wraps(func)
def inner(request, *args, **kwargs):
next = request.path_info
v = request.COOKIES.get("s21")
if v == "hao":
return func(request, *args, **kwargs)
else:
return redirect("/login/?next={}".format(next))
return inner
@login_check
def book_list(request):
return HttpResponse("book_list")
class BookAdd(views.View):
@method_decorator(login_check)
def get(self, request):
return HttpResponse("book_add_get")
def post(self, request):
return HttpResponse("book_add_post")
Session