Cookie:Cookie是存储在客户端浏览器中的小型数据,用于存储用户的状态信息,如登录信息。它以键值对的形式存在,浏览器可以选择保存或拒绝这些信息。
Session:Session是存储在服务器端的用户数据,通常包含用户的状态信息。Django通过Session在服务器上保存用户的相关数据,并通过一个唯一的Session ID(随机字符串)与客户端进行关联。
在Django中,Cookie的操作非常简单。以下是一些常用的Cookie操作示例。
1. 获取Cookie
pythondef get_cookie(request):
username = request.COOKIES.get('username', None) # 获取用户名,默认为None
2. 设置Cookie
pythonfrom django.http import HttpResponse
def set_cookie(request):
response = HttpResponse("设置Cookie")
response.set_cookie('username', 'your_username', max_age=3600) # 设置1小时后过期
return response
3. 删除Cookie
pythondef delete_cookie(request):
response = HttpResponse("删除Cookie")
response.delete_cookie('username')
return response
Django默认支持Session,并将其数据存储在数据库中。以下是Session的常见操作示例。
1. 获取Session
pythondef get_session(request):
user_id = request.session.get('user_id', None) # 获取用户ID,默认为None
2. 设置Session
pythondef set_session(request):
request.session['user_id'] = 123 # 设置用户ID
request.session['username'] = 'your_username' # 设置用户名
3. 删除Session
pythondef delete_session(request):
del request.session['user_id'] # 删除用户ID
4. 清空Session
pythondef clear_session(request):
request.session.flush() # 清空当前用户的所有Session数据
存储位置:
安全性:
大小限制:
以下是一个简单的登录认证示例,使用Cookie和Session来管理用户状态:
pythonfrom django.shortcuts import render, redirect
def login(request):
if request.method == 'POST':
username = request.POST.get('username')
request.session['username'] = username # 设置Session
response = redirect('home') # 重定向到主页
response.set_cookie('username', username) # 设置Cookie
return response
return render(request, 'login.html')
def home(request):
username = request.COOKIES.get('username', request.session.get('username', None))
return render(request, 'home.html', {'username': username})
本文作者:GYC
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!