1. 程式人生 > >利用Django和裝飾器做一個簡單的修改密碼頁面

利用Django和裝飾器做一個簡單的修改密碼頁面

簡單的 chang 數據 rom 根據 end ict 需要 urn

view視圖代碼:

from django.shortcuts import render,redirect
from django.http import HttpResponse

# Create your views here.
def login_required(view_func):
    def wrapper(request,*view_args,**view_kwargs):
        if request.session.has_key(‘islogin‘):
            return view_func()
        else:
            return redirect(‘/login‘)
    return wrapper

def child(request):

    return render(request,‘booktest/child.html‘)



def html_escape(requet):
    return render(requet,‘booktest/html_escape.html‘,{
        ‘content‘:‘<h1>h1標簽<h1>‘
    })



def login(request):
    ‘‘‘顯示登錄頁面‘‘‘
    # 判斷用戶是否登錄
    if request.session.has_key(‘islogin‘):
        # 用戶已登錄, 跳轉到首頁
        return redirect(‘/change_pwd‘)
    else:
        # 用戶未登錄
        # 獲取cookie username
        if ‘username‘ in request.COOKIES:
            # 獲取記住的用戶名
            username = request.COOKIES[‘username‘]
        else:
            username = ‘‘

        return render(request, ‘booktest/login.html‘, {‘username‘:username})


def login_check(request):
    ‘‘‘登錄校驗視圖‘‘‘
    # request.POST 保存的是post方式提交的參數 QueryDict
    # request.GET 保存是get方式提交的參數
    print(request.method)
    # 1.獲取提交的用戶名和密碼
    username = request.POST.get(‘username‘)
    password = request.POST.get(‘password‘)
    remember = request.POST.get(‘remember‘)
    # 2.進行登錄的校驗
    # 實際開發:根據用戶名和密碼查找數據庫
    # 模擬: smart 123
    if username == ‘smart‘ and password == ‘123‘:
        # 用戶名密碼正確,跳轉到首頁
        response = redirect(‘/change_pwd‘)

        # 判斷是否需要記住用戶名
        if remember == ‘on‘:
            # 設置cookie username,過期時間1周
            response.set_cookie(‘username‘, username, max_age=7*24*3600)

        # 記住用戶登錄狀態
        # 只有session中有islogin,就認為用戶已登錄
        request.session[‘islogin‘] = True
        request.session[‘username‘] = username
        # 返回應答
        return response
    else:
        # 用戶名或密碼錯誤,跳轉到登錄頁面
        return redirect(‘/login‘)



@login_required
def change_pwd(request):
    return render(request,‘booktest/change_pwd.html‘)



@login_required
def change_pwd_action(request):
    password = request.POST.get(‘password‘)
    username = request.session.get(‘username‘)
    return HttpResponse(‘你的用戶名為:%s密碼為%s‘%(username,password))

  

利用Django和裝飾器做一個簡單的修改密碼頁面