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>
posted on 2019-05-17 20:12  江湖乄夜雨  阅读(124)  评论(0编辑  收藏  举报