1. 程式人生 > >Python基於Django框架開發之views層

Python基於Django框架開發之views層

登入邏輯順序

1.先判斷請求為GET或POST

2.查詢資料庫該使用者是否存在

3.查詢資料庫該使用者密碼是否正確

註冊邏輯順序

1.線判斷請求為GET或POST

2.查詢資料庫該使用者是否存在

3.判斷兩次密碼是否正確

4.判斷註冊資訊的格式是否正確

如果為GET,返回當前頁面,如果為POST,獲取前端資料進行邏輯判斷

def register_(request):
    if request.method == 'GET':
        return render(request,'register.html')
    elif request.method == 'POST':
        #建立使用者資訊表物件
        new_user = UserInfo()
        #username從前端取,如果沒有就為空
        new_user.uname = request.POST.get('username','')
        a = UserInfo.objects.filter(uname=new_user.uname)
        #條件成立都不能註冊
        if len(a) > 0:
            return render(request,'register.html',{'msg':'使用者名稱存在'})
        if request.POST.get('pwd') != request.POST.get('cpwd'):
            return render(request,'register.html',{'msg':'兩次密碼不一致'})
        #條件不成表示使用者名稱沒被註冊且兩次密碼一致
        #make_password 加密再儲存到資料庫
        new_user.upwd = make_password(request.POST.get('pwd'),None,'pbkdf2_sha1')
        #登入用到的,明文是pwd,密文是pbkdf2_sha1
        # T/F = check_password(明文,密文)
        new_user.uemail = request.POST.get('uemail')
        new_user.uphone = request.POST.get('uphone')
        new_user.save()
        return

獲取前端資料常用方法: request.POST.get('username'',' ')   參1為前端文字框name屬性的值,參2為如果參1的值不存在就會return這個' '值