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: 报

posted @ 2019-08-12 02:42  greenfan  阅读(300)  评论(0)    收藏  举报