• Python学习第三十五课——COOKIES ADN SESSION


    Urls.py

    from django.conf.urls import url
    from django.contrib import admin
    from django.urls import path
    from  app import views
    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'^login/',views.login),
        url(r'^index/',views.index),
    ]

    login.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
    
        <style>
            *{
                margin: 0;
                padding: 0;
            }
    
    
        </style>
    </head>
    <body>
    
    
    <form action="/login/" method="post">
        <p>姓名<input type="text" name="user"></p>
        <p>密码<input type="password" name="pwd"></p>
        <p><input type="submit"></p>
    
    </form>
    
    </body>
    </html>

    view.py(SESSION)

    from django.shortcuts import render, redirect
    
    SESSION
    def login(request):
        # print("SESSION",request.session)
        if request.method == "POST":
            name = request.POST.get("user")
            pwd = request.POST.get("pwd")
            if name == "han" and pwd == "123":  # 不要直接123
                request.session["is_login"] = True
    
                request.session["user"] = name
    
            return redirect("/index/")
    
        return render(request, "login.html")
    
    
    def index(request):
    
        if request.session.get("is_login", None):
            name = request.session.get("user", None)
            return render(request, "index.html", locals())
        else:
            return redirect("/login/")

    view.py(COOKIES)

    from django.shortcuts import render, redirect
    
    import datetime
    # Create your views here.
    
    # COOKIES 可以自己单独工作,但是会把所有的信息存在客户端,不安全。
    # SESSION 是将获得的数据存在数据库的一张表中,安全
    
    def login(request):
        if request.method == "POST":
            name = request.POST.get("user")
            pwd = request.POST.get("pwd")
            if name == "han" and pwd == "123":  # 不要直接123
                ret = redirect("/index/")
    
                # 创建一个键值对  max_age=10 登录完在十秒内可以继续进入index页面
    
                ret.set_cookie("username", name,max_age=10)
                # 在当你登录的时间的基础上加三天,就不能访问了
                ret.set_cookie("username", name,expires=datetime.datetime.utcnow() + datetime.timedelta(days=3))
    
                # 最好是写一样,然后写的时间是一样的,防止出现意外
    
                return ret
    
        return render(request, "login.html")
    
    
    def index(request):
        if request.COOKIES.get("username",None):  # 获得这个键值对
            name = request.COOKIES.get("username",None)
            return render(request, "index.html", locals())
        else:
            return redirect("/login/")
  • 相关阅读:
    线程状态
    线程的两种实现方式
    设计模式
    移动端适配总结(补充一个移动端touch案例)
    echart.js组件编写
    vuex,文件夹整理
    rem初始化
    PC初始化
    移动端初始化
    三角形实现原理
  • 原文地址:https://www.cnblogs.com/pyhan/p/12468700.html
Copyright © 2020-2023  润新知