標籤:請求 message port strip() word mod form表單 ret short
實現登陸視圖功能
1.擷取表單請求資料
from django.shortcuts import renderfrom django.http import HttpResponsefrom django.shortcuts import redirect #匯入重新導向# Create your views here.from app_login.models import Userdef 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 %}
實現登陸視圖功能