一、request对象常用的属性:
二、QueryDict对象:
- 所在的包:django.http.QueryDict
HttpRequest
对象中的GET
和POST
属性 都是QueryDict
类型- 与python字典不同:QueryDict对象一个键可以保存多个值
get()
方法:根据键获取值,如果一个键同时拥有多个值,将获取最后一个值;如果键不存在则返回None值,可以设置返回自定义的默认值getlist()
方法:根据键获取多个值,值以列表返回;如果键不存在则返回空列表[]- 演示:
三、代码编写:
- views的视图函数
-
from django.shortcuts import render,redirect from django.http import HttpResponse # Create your views here. def index(request): return HttpResponse('登录成功') def login(request): return render(request, 'mylogin/login.html') def login_check(request): # 1.获取提交的用户名和密码 username = request.POST.get('username') # 表单的name是什么 这里就传什么 password = request.POST.get('password') # 2.校验并返回应答 if username == 'wen' and password == '123': # 注意这里写字符串 123要加引号 return redirect('/index') else: return redirect('/login')
- 模板文件代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> <h1>注册表单</h1> <form method='POST' action='/login_check'> <p> <label for="">用户名:</label> <input type="text" name="username"> </p> <p> <label for="">密 码:</label> <input type="password" name="password"> </p> <p> <input type="submit" value="登录"> </p> </form> </body> </html>
-
注意:Django对
POST
、PUT
、PATCH
、DELETE
请求方式开启了CSRF安全防护,为方便测试,可以在settings.py
文件中注释掉CSRF中间件,关闭CSRF
防护
四、案例演示:
- 登录成功:
- 登录失败:
五、总结:这个小案例主要弄明白request请求的GET属性和POST属性。