博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django中的cookie和session
阅读量:6504 次
发布时间:2019-06-24

本文共 3843 字,大约阅读时间需要 12 分钟。

hot3.png

cookie的存取操作

#   1、设置Cookies#       response.set_cookie("cookie_key","value")#   2、获取Cookies#       value = request.COOKIES["cookie_key"]#   3、删除Cookies#       response.delete_cookie("cookie_key",path="/",domain=name)#   4、检测Cookies#       if "cookie_name" is request.COOKIES :#   5、response.set_cookie() 传递一些可选的参数 描述#       参数      缺省值       描述#       max_age  None    cookies的持续有效时间(以秒计),如果设置为 None cookies 在浏览器关闭的时候就失效了。#       expires  None    cookies的过期时间,格式: "Wdy, DD-Mth-YY HH:MM:SS GMT" 如果设置这个参数,#                           它将覆盖 max_age 参数。#       path     "/"     cookie生效的路径前缀,浏览器只会把cookie回传给带有该路径的页面,这样你可以避免将#                           cookie传给站点中的其他的应用。#                           当你的应用不处于站点顶层的时候,这个参数会非常有用。#       domain   None    cookie生效的站点。你可用这个参数来构造一个跨站cookie。如, domain=".example.com"#                           所构造的cookie对下面这些站点都是可读的: www.example.com 、 www2.example.com 和#                           an.other.sub.domain.example.com 。#                           如果该参数设置为 None ,cookie只能由设置它的站点读取。#       secure   False   如果设置为 True ,浏览器将通过HTTPS来回传cookie。

代码示例:

from django.template import Contextfrom django.http import HttpResponsefrom django.http import HttpResponseRedirectimport datetimedef set_user(request,hour=0,name="admin"):    dt = datetime.datetime.now() + datetime.timedelta(hours = int(hour))    html ="设置用户%s为登录回话,过去时间:%s" % (name,str(dt))    response = HttpResponse(html)    response.set_cookie("username",name,expires=dt)    return responsedef show_user(request):    html = ""    if "username" in request.COOKIES :        name = request.COOKIES["username"]        if name == "admin":            html = "用户%s 的Cookies 没有超时" % name        if name == "loker" :            html = "用户%s 的Cookies 没有超时" % name        else:             dt = datetime.datetime.now() + datetime.timedelta(hours = int(1))            name ="loker"            html ="用户的Cookies 已经超时\n设置用户%s为登录回话,过去时间:%s" % (name,str(dt))            response = HttpResponse(html)                     response.set_cookie("username",name,expires=dt)                        return response    response = HttpResponse(html)

session的存取操作:

#     1、设置Sessions值#           request.session['session_name'] ="admin"#     2、获取Sessions值#           session_name = request.session["session_name"]#     3、删除Sessions值#           del request.session["session_name"]#     4、检测是否操作session值#           if "session_name" is request.session :

示例代码:

from django.template import Contextfrom django.http import HttpResponse#设置Sessions值def set_session(request,name=""):   # if "username" in request.session :   #     del request.session['user_name']    request.session['user_name'] =name    return HttpResponse("Set a session key:%s value:%s"% ("username",name))def del_session(request):    if "user_name" in request.session :        del request.session['user_name']    return HttpResponse("Clear an item from the session")#查看Sessions值def show_session(request):    html = ""    if "user_name" in request.session :        name = request.session["user_name"]        if name == "admin" :            html = "Django site  administration | Get a session value:%s" % (str(name))        elif name=="lhj588":            html = "Django  site |Get a session value:%s" % (str(name))        elif  not name:             html = "Django  site |Get a session value is null"        return HttpResponse(html)    else:        return HttpResponse("Session is null")        #set_session(request,"loker")

优缺点比较:

cookie:

#    1、Cookies是以字典方式存储,(Key—>Value的键值对方式存储),访问是只要访问Session的键#    就可以得到键对应的Value#       如果:value = response.set_cookie("cookie_key","value")#    2、存储到客户端#       优点:#           数据存在在客户端,减轻服务器端的压力,提高网站的性能。#       缺点:#           1、安全性不高:在客户端机很容易被查看或破解用户回话信息

session:

#      优点:数据存储相对比较安全,数据交换方便。#      缺点:如果存储数据多,访问量大时,比较消耗服务器端资源,导致网站整体性能下降。

 

转载于:https://my.oschina.net/jamescasta/blog/1083152

你可能感兴趣的文章
解决方案(.sln)文件
查看>>
指针和引用的区别
查看>>
运行PHP出现No input file specified错误解决办法
查看>>
【重建】从FJOI2016一试谈起
查看>>
selenium之frame操作
查看>>
php 引入其他文件中的变量
查看>>
MYSQL体系结构-来自期刊
查看>>
mysql的基本知识
查看>>
webpack入门(二)what is webpack
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>
眠眠interview Question
查看>>
[转]CSS hack大全&详解
查看>>
RPC-client异步收发核心细节?
查看>>
#define WIN32_LEAN_AND_MEAN 的作用
查看>>
仿余额宝数字跳动效果 TextCounter
查看>>
你必须知道的.net学习总结
查看>>
Axure8.0 网页 or App 鼠标滚动效果
查看>>
大家好,新年快乐。
查看>>
Android学习路线
查看>>
Linux下的redis的持久化,主从同步及哨兵
查看>>