16 通过模拟登陆页面了解一些request的两个属性POST GET和一个方法get
<form method="post" action="/check">
因为form中的method是post,所以提交到action='check'后,check函数的参数request,request.POST.get('username')获取username的值,
request.POST.get('password')获取password的值。
如果form中的method='get',那check函数中的request就是这样获取:request.GET.get('username')
request还有几个属性:
request.method 返回提交方式是POST还是GET
request.path 返回访问的完整路径,不包含域名和参数
request.FILES 一个类似字典的对象,包含上传的文件
request.COOKIES 一个表中的python字典,包含所有的cookie,键值都是字符串
request.session 一个可读可写的类似字典的对象,表示当前的会话,只有当Django启用会话的支持时才可用
urls.py
from django.urls import path, re_path from bookapp import views urlpatterns = [ path('index', views.index), path('create', views.create), re_path(r'^delete/(\w+)', views.delete), path('areas',views.areas), path('login',views.login), path('check',views.check), ]
login.html
<!DOCTYPE html> <html> <head> <title>login</title> </head> <body> <!-- method有两个选项:post和get,post:信息会在请求头部中,get:信息会直接在url中。post更安全一些 --> <form method="post" action="/check"> user:<input type="text" name="username"> pass:<input type="password" name="password"> <input type="submit" name="提交"> </form> </body> </html>
views.py
def login(request): return render(request,'login.html') def check(request): # request两个属性: # request.GET 保存的是get提交过来的参数 # request.POST 保存的是post提交过来的参数 # 获取提交的用户名密码 user = request.POST.get('username') password = request.POST.get('password') print(user,':',password) # 校验应答 if user == 'test' and password == '123': # 正确就跳转到首页 return redirect('/index') else: # 否则就返回登陆页面 return redirect('/login')
ps: 报

浙公网安备 33010602011771号