Django登录小案例

一、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="">密&nbsp;&nbsp;&nbsp;码:</label>
            <input type="password" name="password">
        </p>
    
        <p>
            <input type="submit" value="登录">
        </p>
    </form>
    </body>
    </html>
  • 注意:Django对POSTPUTPATCHDELETE请求方式开启了CSRF安全防护,为方便测试,可以在settings.py文件中注释掉CSRF中间件,关闭CSRF防护

四、案例演示:

  • 登录成功:
  • 登录失败:

五、总结:这个小案例主要弄明白request请求的GET属性和POST属性。

猜你喜欢

转载自blog.csdn.net/wenpy/article/details/91426525
今日推荐