urls.py
url(r'^admin/', admin.site.urls), url(r'^set_cookie/',views.set_cookie), url(r'^get_cookie/',views.get_cookie), url(r'^login/',views.login), url(r'^order/',views.order), url(r'^shopping/',views.shopping),
views.py
from django.shortcuts import render, HttpResponse, redirect # 測試的時候要記得清理緩存哦 # Create your views here. # 登錄認證裝飾器 def login_auth(func): def inner(request, *args, **kwargs): # 拿到之前訪問的路徑 url = request.get_full_path() is_login = request.COOKIES.get('is_login') if is_login: res = func(request, *args, **kwargs) return res else: return redirect('/login/?next=%s' %url) # return redirect('/login/') return inner # ------------------------ def set_cookie(request): obj = HttpResponse('ok') obj.set_cookie('name', 's_jun') return obj def get_cookie(request): print(type(request.COOKIES)) print(request.COOKIES) name = request.COOKIES.get('name') obj = HttpResponse("get_cookie") return obj # ------------------------------------------------------------- # 新的login,拿到之前訪問的路徑 # 訪問/order/ (沒有登錄,并且刪除cookie)頁面的時候,會跳到/login/?next=/order/的頁面,若是成功登錄以后,變會跳到之前訪問的路徑.(例如:/order/) def login(request): if request.method == "GET": return render(request, 'login.html') else: next = request.GET.get('next') name = request.POST.get('name') pwd = request.POST.get('pwd') if name == 's_jun' and pwd == '123': if next: obj=redirect(next) else: obj=redirect('/shopping/') obj.set_cookie('is_login', True) # 設(shè)置cookie return obj else: return HttpResponse('用戶名或密碼錯誤') # 原來的login # def login(request): # if request.method == "GET": # return render(request, 'login.html') # else: # name = request.POST.get('name') # pwd = request.POST.get('pwd') # if name == 's_jun' and pwd == '123': # obj = HttpResponse('登錄成功,寫入cookie,請刷新頁面后查看cookie,返回/order/或者/shopping/,頁面查看登錄結(jié)果') # obj.set_cookie('is_login', True) # 設(shè)置cookie # return obj # else: # return HttpResponse('用戶名或密碼錯誤') # ↑上login 函數(shù)與(http://127.0.0.1:8000/order,訪問時,若沒有登錄的情況下,會自動跳轉(zhuǎn)到/login/的頁面中,只有登錄了才可以看到 http://127.0.0.1:8000/order/的這個頁面中(沒有跳轉(zhuǎn)到/login/的頁面中) )order函數(shù)下↓ # 此是為了判斷cookie是否存在,存在的話便會看到order的頁面中 # 基于cookie 寫了登錄驗證 # def order(request): # is_login = request.COOKIES.get('is_login') # 獲取cookie # # 判斷是否有cookie,獲取到的話會看到"我是訂單頁面,我得登錄才能看",獲取不到會返回到/login/頁面中 # if is_login: # return HttpResponse('我是訂單頁面,我得登錄才能看') # else: # return redirect('/login/') # # # def shopping(request): # is_login = request.COOKIES.get('is_login') # 獲取cookie # if is_login: # return HttpResponse('我是購物頁面,我得登錄才能看') # else: # return redirect('/login/') # 登錄驗證語法糖 @login_auth def order(request): return HttpResponse('我是訂單頁面,我得登錄才能看') @login_auth def shopping(request): return HttpResponse('我是購物頁面,我得登錄才能看')
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)與策劃設(shè)計,龍游網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:龍游等地區(qū)。龍游做網(wǎng)站價格咨詢:18982081108