03-路由控制3——反向解析之登陆验证示例
03-路由控制3——反向解析之登陆验证示例
1、基于上面的那个例子来做
2、避免Forbidden错误
settings.py
文件中有个MIDDLEWARE的列表,将里面的csrf有关的注释掉,否则点击提交会产生Forbidden错误:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
视图函数的写法
在app01的views.py文件中的login函数做下面的判断
from django.shortcuts import render,HttpResponse
# Create your views here.
#注意这个函数必须要有一个形参 request
def login(request):
# 如果是GET请求则返回当前页面
if request.method == 'GET':
print('GET请求的数据:',request.GET)
# 这个函数必须得有return,而且是利用render渲染...
return render(request, 'login.html')
#如果是POST请求方式则做校验
elif request.method == 'POST':
print('POST请求的数据:',request.POST)
#注意:
#request.POST存的是form表单中name值作为key自己输入的值作为value的字典!
user = request.POST.get('user')#这里的user与form表单中的name值对应
pwd = request.POST.get('pwd')#这里的pwd与form表单中的name值对应
#这里可以用数据库操作代替:::
if user == 'whw' and pwd == '123':
return HttpResponse('OK!')
else:
return HttpResponse('ERROR!')
模板templates中的内容
templates包中的login.html的内容————form表单的action后面什么也不写代表到当前页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/whw1.css">
</head>
<body>
<form action="http://127.0.0.1:8000/login/" method="post">
用户名: <input type="text" name="user" >
密码: <input type="password" name="pwd">
<input type="submit">
</form>
</body>
</html>