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