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),

 

posted @ 2020-06-18 16:06  手可摘星辰。  阅读(145)  评论(0编辑  收藏  举报