zoukankan      html  css  js  c++  java
  • Python

    home.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>个人信息页面</title>
    </head>
    <body>
    
    <p>个人信息页面</p>
    
    </body>
    </html>
    

    只有返回一串字符串

    login.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登录页面</title>
    </head>
    <body>
    
    <p>登录页面</p>
    
    <form action="/login/" method="post">
        {% csrf_token %}
        <p>
            账号:
            <input type="text" name="user">
        </p>
        <p>
            密码:
            <input type="text" name="pwd">
        </p>
        <p>
            <input type="submit" value="登录">
        </p>
    </form>
    
    </body>
    </html>
    

    要考虑加上 csrf_token,不然会 403

    login 函数:

    from django.shortcuts import render, redirect
    from app01 import models
    
    
    def login(request):
        if request.method == "POST":
            username = request.POST.get("user")
            password = request.POST.get("pwd")
            if username == "admin" and password == "admin":
                rep = redirect("/home/")  # 得到一个响应对象
                rep.set_cookie("login", "success")  # 设置 cookie
                return rep
    
        return render(request, "login.html")
    

    set_cookie() 中的第一个参数为 key,第二个参数为 value

    home 函数:

    from django.shortcuts import render, redirect
    from app01 import models
    
    
    def home(request):
        ret = request.COOKIES.get("login")  # 获取 cookie 的 value
        if ret == "success":
            # cookie 验证成功
            return render(request, "home.html")
        else:
            return redirect("/login/")
    

    输入账号、密码:admin,cookie 验证成功

    给 cookie 加盐:

    login 函数:

    from django.shortcuts import render, redirect
    from app01 import models
    
    
    def login(request):
        if request.method == "POST":
            username = request.POST.get("user")
            password = request.POST.get("pwd")
            if username == "admin" and password == "admin":
                rep = redirect("/home/")  # 得到一个响应对象
                # rep.set_cookie("login", "success")  # 设置 cookie
                rep.set_signed_cookie("login", "success", salt="whoami")  # 设置 cookie 并加盐
                return rep
    
        return render(request, "login.html")
    

    home 函数:

    from django.shortcuts import render, redirect
    from app01 import models
    
    
    def home(request):
        # ret = request.COOKIES.get("login")  # 获取 cookie 的 value
        ret = request.get_signed_cookie("login", salt="whoami")  # 获取加盐后 cookie 的 value
        if ret == "success":
            # cookie 验证成功
            return render(request, "home.html")
        else:
            return redirect("/login/")
    

    输入账号、密码:admin,cookie 验证成功

  • 相关阅读:
    台阶问题,100层台阶,1,2,3步组合走完。一种有几种组合?
    idea 导入gitlab项目
    查找学生信息
    谁是你潜在的朋友
    Sort
    统计同成绩学生人数
    打印日期
    今年的第几天?
    DayOfWeek
    日期差值
  • 原文地址:https://www.cnblogs.com/sch01ar/p/11342984.html
Copyright © 2011-2022 走看看