zoukankan      html  css  js  c++  java
  • 会话保持及Form表单--cookie、session

    会话保持--cookie、session

     实例1:使用cookie让浏览器记录用户登录次数

    view.py代码如下:

    def index(request):
        #会话保持cookie
        #获取浏览器的cookie
        num = request.COOKIES.get('num')
        if num:
            num = str(int(num)+1)
        else:
            num = 1
        response=render(request,'teacher/index.html',context={
            'num':num
        })
        #设置cookie
        response.set_cookie('num',num,max_age=20) #max_age保存多少秒,整数,expiry设置过期时间
        return response

    index.html代码如下:

        <h1 style="color: red">我是第<span style="color: yellowgreen"> {{ num }}</span>次访问</h1>

    结果展示如下:

    2.session会话保持

    在项目的setting.py中注册

    INSTALLED_APPS = [
        'django.contrib.sessions',   #这两个都是session需要用到的
    ]
    
    MIDDLEWARE = [
        'django.contrib.sessions.middleware.SessionMiddleware',
    ]

    添加上以后还需要进行数据迁移,如果默认存在上面,以前做数据迁移的时候已经做了,不需要重复做,django 默认启动session.

    django数据保存在django_session表中

    session方法:

    实例二:session技术依赖于cookie技术。使用session实现客户端的登录与登出

    view.py代码如下:

    def index(request):
    #会话保持session
        name = request.session.get('name')
        return  render(request,'teacher/index.html',context={'name':name})
    
    def login(request):
        if request.method == 'POST':
            username = request.POST.get('username','')
            password = request.POST.get('password','')
            if username == 'xinlian' and password == '111':
                request.session['name']=username
                request.session.set_expiry(10)  #设置过期时间
                return  redirect(reverse('teacher:index'))
        return  render(request,'teacher/login.html')
    def logout(request):
    request.session.flush()
    return redirect(reverse('teacher:index'))

    index.html代码如下:

    用户名:{{ name|default:"未登录" }} <a href="{% url 'teacher:logout' %}">安全退出</a>

    login.html代码如下:

        <h1>登录</h1>
        <form action="" method="post">
            {% csrf_token %}
            <p>用户名:<input type="text" name="username"></p>
            <p>密码:<input type="password" name="password"></p>
            <p><input type="submit" value="登录"></p>
        </form>

    urls.py中添加:

    path('index/', views.index,name='index'),
    path('login/', views.login),
    path('logout/',views.logout,name='logout'),

    实现结果如下:

  • 相关阅读:
    【使用教程】CMDer,Window下CMD的替代者
    什么是数据仓库?
    【大话存储】学习笔记(八),数据保护
    分布式与集群
    【大话存储】学习笔记(五),以太网
    【廖雪峰】Python
    【大话存储】学习笔记(7章), OSI模型
    KVM计算虚拟化原理,偏基础
    DevOps
    H3C CAS(云管理平台)介绍
  • 原文地址:https://www.cnblogs.com/taoge188/p/10540991.html
Copyright © 2011-2022 走看看