zoukankan      html  css  js  c++  java
  • 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/")
  • 相关阅读:
    洛谷 P2607 [ZJOI2008]骑士(基环树、树形dp)
    洛谷 P1453 城市环路(基环树,树形dp)
    基环树学习笔记 & CF711D Directed Roads
    centos7 系统安全加固方案
    来自后端的突袭? --开包即食的教程带你浅尝最新开源的C# Web引擎 Blazor
    作为一个C#程序员, 你应该上手Kotlin
    python中类和self讲解
    Mysql 存储引擎中InnoDB与Myisam的主要区别
    Apache和Nginx的区别
    PHP超全局变量
  • 原文地址:https://www.cnblogs.com/pyhan/p/12468700.html
Copyright © 2011-2022 走看看