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/")
  • 相关阅读:
    「UOJ#117」 欧拉回路
    「LuoguP1341」 无序字母对(欧拉回路
    「NOIP2002」「Codevs1099」 字串变换(BFS
    「IOI1998」「LuoguP4342」Polygon(区间dp
    「LuoguP2420」 让我们异或吧(树上前缀和
    「USACO13MAR」「LuoguP3080」 牛跑The Cow Run (区间dp
    「LuoguP1220」 关路灯(区间dp
    「CQOI2007」「BZOJ1260」涂色paint (区间dp
    「LuoguP1430」 序列取数(区间dp
    「USACO16OPEN」「LuoguP3147」262144(区间dp
  • 原文地址:https://www.cnblogs.com/pyhan/p/12468700.html
Copyright © 2011-2022 走看看