實現登陸視圖功能
阿新 • • 發佈:2018-10-05
安全 滿足 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 %}
實現登陸視圖功能