• Django_cookie与sesstion


    cookie:

    set_cookie(key, value="", max_age=None, expires=None)    # 设置Cookie
    

      key、value都是字符串类型。

      max_age是一个整数,表示在指定秒数后过期。

      expires是一个datetime或timedelta对象,会话将在这个指定的日期或时间过期。

      max_age和expires二选一。

      如果不指定过期时间,则两个星期后过期。

    设置cookie:

    def set_cookie(request):
        response = HttpResponse()  # 创建对象
        response.set_cookie('wdc', '123')  # 设置cookie
        return response

    检测、获取cookie:

    def cookie(request):
        if 'wdc' in request.COOKIES:    # 检测cookie中是否有键为‘wdc’的值
            wdc = request.COOKIES.get('wdc')    # 获取cookie
            return render(request, 'cookie.html', {'wdc': wdc})
        else:
            return render(request, 'cookie.html')

    删除cookie:

    def del_cookie(request):
        response = HttpResponse()  # 创建对象
        response.delete_cookie('wdc')  # 删除cookie
        return response

     session:

       get(key, default=None)  :根据键获取会话的值

      clear()  :清除所有会话

      flush()  :删除当前的会话数据并删除会话的Cookie

      del request.session['member_id']  :删除会话

    视图:

    def session(request):
        qqq = request.GET.get('qqq', None)
        if qqq == '1':
            del request.session['username']  # 删除键为‘username’的session,不存在时报错
        username = request.POST.get('username', None)
        request.session['username'] = username     # 给session设置值
        wdc = request.session.get('username', default=None)    # 获取session中的值
        return render(request, 'session.html', {"wdc": wdc})
    
    
    def session_get(request):
        return render(request, 'session_login.html')

    模板:

      session.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>首页</title>
    </head>
    <body>
    欢迎:{{ wdc }}
    <br>
    <a href="/session_get/">登录</a>
    <br>
    <a href="/session/?qqq=1">退出</a>
    </body>
    </html>

      session_login.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登录</title>
    </head>
    <body>
    <form action="/session/" method="post">
        {% csrf_token %}
        <input type="text" name="username">
        <input type="submit" value="提交">
    </form>
    </body>
    </html>

    路由:

        path('session/', views.session),
        path('session_get/', views.session_get),
  • 相关阅读:
    ABAP Webdynpro Interface View的用法
    ABAP Webdynpro的跟踪工具WD_TRACE_TOOL
    git 速查
    Python 解析含有命名空间(xmlns)的xml文件(基于ElementTree)
    完全显示DataFrame中行、列内容
    解决Jupyter Notebook中for循环输出DataFrame不够美观
    git配置别名
    元素可拖拽(移动端与pc端)
    pointer network和recursive神经网络
    ELMO,BERT和GPT简介
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/13158061.html
Copyright © 2020-2023  润新知