本文实例讲述了Django项目开发中cookies和session的常用操作。分享给大家供大家参考,具体如下:
COOKIES操作
检查cookies是否存在:
1
|
request.COOKIES.has_key( '<cookie_name>' ) |
获取cookies:
1
2
3
|
request.COOKIES.get( 'visits' , '1' ) if 'last_visit' in request.COOKIES: request.COOKIES[ 'last_visit' ] |
设置cookies:
1
|
response.set_cookie( '<cookie_name>' , value) |
SESSION操作
获取session:
1
2
|
fav_color = request.session.get( 'fav_color' , 'red' ) fav_color = request.session[ 'fav_color' ] |
设置session:
1
|
request.session[ 'visits' ] = visits |
删除session:
1
|
del request.session[ 'fav_color' ] |
如果给出的key 在会话中不存在,将抛出 KeyError。
判断包含session:
1
|
'fav_color' in request.session |
清除session数据库
1
|
python manage.py clearsessions |
附:Django基于自定义cookies 的登录,注册,退出功能示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#注册 def regist(req): if req.method = = 'POST' : uf = UserForm(req.POST) if uf.is_valid(): #获得表单数据 username = uf.cleaned_data[ 'username' ] password = uf.cleaned_data[ 'password' ] #添加到数据库 User.objects.create(username = username,password = password) return HttpResponse( 'regist success!!' ) else : uf = UserForm() return render_to_response( 'regist.html' ,{ 'uf' :uf}, context_instance = RequestContext(req)) #登陆 def login(req): if req.method = = 'POST' : uf = UserForm(req.POST) if uf.is_valid(): #获取表单用户密码 username = uf.cleaned_data[ 'username' ] password = uf.cleaned_data[ 'password' ] #获取的表单数据与数据库进行比较 user = User.objects. filter (username__exact = username,password__exact = password) if user: #比较成功,跳转index response = HttpResponseRedirect( '/online/index/' ) #将username写入浏览器cookie,失效时间为3600 response.set_cookie( 'username' ,username, 3600 ) return response else : #比较失败,还在login return HttpResponseRedirect( '/online/login/' ) else : uf = UserForm() return render_to_response( 'login.html' ,{ 'uf' :uf},context_instance = RequestContext(req)) #登陆成功 def index(req): username = req.COOKIES.get( 'username' ,'') return render_to_response( 'index.html' ,{ 'username' :username}) #退出 def logout(req): response = HttpResponse( 'logout !!' ) #清理cookie里保存username response.delete_cookie( 'username' ) return response |
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
原文链接:https://blog.csdn.net/win_turn/article/details/52997641