django登錄驗證(狀態(tài)保持)

設(shè)置book應(yīng)用下的頁面需要登錄才能訪問
user/views.py

def login(request):
      ...
      #部分省略
    user=User.objects.filter(username=username,password=my_md5(password))
    if user:
      #將用戶的username保存到session中
      request.session["login_user"] =username

book/views.py

#驗證是否登錄的裝飾器
def check_user(func):
    def inner(*args, **kwargs):
        #判斷是否登錄
        username = args[0].session.get("login_user", "")
        if username == "":
            #保存當(dāng)前的url到session中
            args[0].session["path"] = args[0].path
            #重定向到登錄頁面
            return redirect(reverse("user:login"))
        return func(*args, **kwargs)

    return inner


@check_user
def book_list(request):
    book_list = BookInfo.objects.all()
    return render(request, "book/book_list.html",     {"book_list": book_list})


@check_user
def book_detail(request, bid):
    book = BookInfo.objects.get(id=bid)
    return render(request, "book/book_detail.html", {"book": book})


@check_user
def index(requests):
    return render(requests, "book/index.html", {})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容