1. 程式人生 > >實現登陸視圖功能

實現登陸視圖功能

安全 滿足 bootstra rtc == 使用 create quest .html

實現登陸視圖功能

1.獲取表單請求數據

from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import redirect      #導入重定向
# Create your views here.
from app_login.models import User
def index(request):
    return render(request, 'login/index.html')


def login(request):
    if request.method=="POST":   #提交表單後,滿足請求為post就執行下面的內容
        username = request.POST.get('username')       #獲取表單中輸入的用戶名和密碼
        password = request.POST.get('password')
        print(username,password)            #用於查看輸入的信息
        # user = User(username, password)         #添加到User表中
        # user.save()                             #存儲到數據庫中
        return redirect('/index/')          #重定向url到index
    return render(request,'login/login.html')

#需要註意,由於頁面跳轉屬於跨域請求,安全起見,是不允許了,想要訪問協議在form表單中加入{% csrf_token %},以解決該問題

2.賬號驗證

獲取表單數據後
1.判斷賬號密碼是否為空
if username and password:   如果不為空,
    
2.去除輸入框中前後的空格(防止誤輸入)
    username=username.strip()
3.驗證賬號密碼
1)查看數據庫中是否存在,不存在就無法登陸,存在就匹配密碼學習,匹配成功就登陸,失敗就無法登陸
#查詢數據庫中是否存在該用戶名和密碼
t_username=User.objects.filter(name=username)       
t_password=User.objects.filter(password=password)
if t_username and t_password:
    return redirect('/index/')
elif not t_username:
    return HttpResponse('用戶名不存在')
elif not t_password:
    return HttpResponse('密碼不存在')

3.添加警示信息

def login(request):
    message='所有字段都必須填寫'
    if request.method=="POST":   #提交表單後,滿足請求為post就執行下面的內容
        username = request.POST.get('username')       #獲取表單中輸入的用戶名和密碼
        password = request.POST.get('password')
        print(username,password)
        if username and password :    #用戶名和密碼都不為空
            username=username.strip()  #清除用戶名前後的空格
        # user = User(username, password)         #添加到User表中
        # user.save()                             #存儲到數據庫中
            #查詢數據庫中是否存在該用戶名和密碼
            t_username=User.objects.filter(name=username)
            t_password=User.objects.filter(password=password)
            if t_username and t_password:
                return redirect('/index/')
            elif not t_username:
                # return HttpResponse('用戶名不存在')
                message='用戶名不存在'
            elif not t_password:
                # return HttpResponse('密碼不存在')
                message='密碼不存在'
    return render(request,'login/login.html',{"message":message})   #將message信息通過模板傳遞到網頁

html頁面
<form class='form-login' action="/login/" method="POST">
              {% if message %}      <!--類似if語句-->
                  <div class="alert alert-warning">{{ message }}</div>  <!--使用bootstrap的警示傳遞message信息-->
              {% endif %}

實現登陸視圖功能