当前位置: 首页 > news >正文

服装公司网站模板太平洋电脑网官方网站

服装公司网站模板,太平洋电脑网官方网站,江门网站建设哪家快,网站教程网Django - Cookie和Session cookie Django中操作CookieCookie版登陆校验Session Django中Session相关方法Session流程解析Session版登陆验证Django中的Session配置Django - Cookie和Session cookie Cookie的由来 大家都知道HTTP协议是无状态的。 无状态的意思是每次请求都是独立… Django - Cookie和Session cookie Django中操作CookieCookie版登陆校验Session Django中Session相关方法Session流程解析Session版登陆验证Django中的Session配置 Django - Cookie和Session cookie Cookie的由来 大家都知道HTTP协议是无状态的。 无状态的意思是每次请求都是独立的它的执行情况和结果与前面的请求和之后的请求都无直接关系它不会受前面的请求响应情况直接影响也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见对服务器来说每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 什么是Cookie Cookie具体指的是一段小信息它是服务器发送出来存储在浏览器上的一组组键值对下次访问服务器时浏览器会自动携带这些键值对以便服务器提取有用信息。 Cookie的原理 cookie的工作原理是由服务器产生内容浏览器收到请求后保存在本地当浏览器再次访问时浏览器会自动带上Cookie这样服务器就能通过Cookie的内容来判断这个是“谁”了。 查看Cookie 我们使用Chrome浏览器打开开发者工具。 Django中操作Cookie 获取Cookie request.COOKIES[key] request.get_signed_cookie(key, defaultRAISE_ERROR, salt, max_ageNone)   参数 default: 默认值salt: 加密盐max_age: 后台控制过期时间设置Cookie rep HttpResponse(...) rep render(request, ...)rep.set_cookie(key,value,...) rep.set_signed_cookie(key,value,salt加密盐, max_ageNone, ...)   参数 key, 键value, 值max_ageNone, 超时时间expiresNone, 超时时间(IE requires expires, so set it if hasnt been already.)path/, Cookie生效的路径/ 表示根路径特殊的根路径的cookie可以被任何url的页面访问domainNone, Cookie生效的域名secureFalse, https传输httponlyFalse 只能http协议传输无法被JavaScript获取不是绝对底层抓包可以获取到也可以被覆盖删除Cookie def logout(request):rep redirect(/login/)rep.delete_cookie(user) # 删除用户浏览器上之前设置的usercookie值return rep   Cookie版登陆校验 def check_login(func):wraps(func)def inner(request, *args, **kwargs):next_url request.get_full_path()if request.get_signed_cookie(login, saltSSS, defaultNone) yes:# 已经登录的用户...return func(request, *args, **kwargs)else:# 没有登录的用户跳转刚到登录页面return redirect(/login/?next{}.format(next_url))return innerdef login(request):if request.method POST:username request.POST.get(username)passwd request.POST.get(password)if username xxx and passwd dashabi:next_url request.GET.get(next)if next_url and next_url ! /logout/:response redirect(next_url)else:response redirect(/class_list/)response.set_signed_cookie(login, yes, saltSSS)return responsereturn render(request, login.html)   Session Cookie虽然在一定程度上解决了“保持状态”的需求但是由于Cookie本身最大支持4096字节以及Cookie本身保存在客户端可能被拦截或窃取因此就需要有一种新的东西它能支持更多的字节并且他保存在服务器有较高的安全性。这就是Session。 问题来了基于HTTP协议的无状态特征服务器根本就不知道访问者是“谁”。那么上述的Cookie就起到桥接的作用。 我们可以给每个客户端的Cookie分配一个唯一的id这样用户在访问时通过Cookie服务器就知道来的人是“谁”。然后我们再根据不同的Cookie的id在服务器上保存一段时间的私密资料如“账号密码”等等。 总结而言Cookie弥补了HTTP无状态的不足让服务器知道来的人是“谁”但是Cookie以文本的形式保存在本地自身安全性较差所以我们就通过Cookie识别不同的用户对应的在Session里保存私密的信息以及超过4096字节的文本。 另外上述所说的Cookie和Session其实是共通性的东西不限于语言和框架。 Django中Session相关方法 request.session[k1] request.session.get(k1,None) request.session[k1] 123 request.session.setdefault(k1,123) # 存在则不设置 del request.session[k1]# 所有 键、值、键值对 request.session.keys() request.session.values() request.session.items() request.session.iterkeys() request.session.itervalues() request.session.iteritems()# 会话session的key request.session.session_key# 将所有Session失效日期小于当前日期的数据删除 request.session.clear_expired()# 检查会话session的key在数据库中是否存在 request.session.exists(session_key)# 删除当前会话的所有Session数据 request.session.delete()# 删除当前的会话数据并删除会话的Cookie。 request.session.flush() 这用于确保前面的会话数据不可以再次被用户的浏览器访问例如django.contrib.auth.logout() 函数中就会调用它。# 设置会话Session和Cookie的超时时间 request.session.set_expiry(value)* 如果value是个整数session会在些秒数后失效。* 如果value是个datatime或timedeltasession就会在这个时间后失效。* 如果value是0,用户关闭浏览器session就会失效。* 如果value是None,session会依赖全局session失效策略。   Session流程解析 Session版登陆验证 from functools import wrapsdef check_login(func):wraps(func)def inner(request, *args, **kwargs):next_url request.get_full_path()if request.session.get(user):return func(request, *args, **kwargs)else:return redirect(/login/?next{}.format(next_url))return innerdef login(request):if request.method POST:user request.POST.get(user)pwd request.POST.get(pwd)if user alex and pwd alex1234:# 设置sessionrequest.session[user] user# 获取跳到登陆页面之前的URLnext_url request.GET.get(next)# 如果有就跳转回登陆之前的URLif next_url:return redirect(next_url)# 否则默认跳转到index页面else:return redirect(/index/)return render(request, login.html)check_login def logout(request):# 删除所有当前请求相关的sessionrequest.session.delete()return redirect(/login/)check_login def index(request):current_user request.session.get(user, None)return render(request, index.html, {user: current_user})   Django中的Session配置 1. 数据库Session SESSION_ENGINE django.contrib.sessions.backends.db # 引擎默认2. 缓存Session SESSION_ENGINE django.contrib.sessions.backends.cache # 引擎 SESSION_CACHE_ALIAS default # 使用的缓存别名默认内存缓存也可以是memcache此处别名依赖缓存的设置3. 文件Session SESSION_ENGINE django.contrib.sessions.backends.file # 引擎 SESSION_FILE_PATH None # 缓存文件路径如果为None则使用tempfile模块获取一个临时地址tempfile.gettempdir() 4. 缓存数据库 SESSION_ENGINE django.contrib.sessions.backends.cached_db # 引擎5. 加密Cookie Session SESSION_ENGINE django.contrib.sessions.backends.signed_cookies # 引擎其他公用设置项 SESSION_COOKIE_NAME sessionid # Session的cookie保存在浏览器上时的key即sessionid随机字符串默认 SESSION_COOKIE_PATH / # Session的cookie保存的路径默认 SESSION_COOKIE_DOMAIN None # Session的cookie保存的域名默认 SESSION_COOKIE_SECURE False # 是否Https传输cookie默认 SESSION_COOKIE_HTTPONLY True # 是否Session的cookie只支持http传输默认 SESSION_COOKIE_AGE 1209600 # Session的cookie失效日期2周默认 SESSION_EXPIRE_AT_BROWSER_CLOSE False # 是否关闭浏览器使得Session过期默认 SESSION_SAVE_EVERY_REQUEST False # 是否每次请求都保存Session默认修改之后才保存默认   转载于:https://www.cnblogs.com/Ryan-Yuan/p/11582100.html
http://www.pierceye.com/news/89327/

相关文章:

  • 网站推广工具推荐济阳做网站
  • 宣传网站制作建筑企业培训课程
  • 电子商务网站建设实验原理网站wordpress
  • 分享类网站源码淘宝是行业门户网站的盈利模式是什么
  • 湖南建设人力资源网是正规网站吗PHP框架和wordpress
  • 怎么制作网站镜像重庆建网站城选快忻科技悉心
  • 网站欧美风格游戏设计培训机构有哪些
  • 河源手机网站制作2021智慧树互联网与营销创新
  • 江门搜索引擎网站推广网站维护 关站 seo
  • 嘉兴网站建设的前景邢台物流网站建设
  • 后端开发网站做一些什么网页制作个人主页教程
  • 网站开发可以用gif吗阿里 wordpress
  • 写作网站名字免费学编程国内网站
  • 中国空间站名字国内团购网站做的最好的是
  • 大专电子商务主要学什么天津seo招聘
  • 制作app免费网站模板下载网站备案 人在上海
  • 最新免费网站源码手机网页自动跳转怎么处理
  • 学校的网站如何建设方案大连网页设计培训班
  • 找别人做的网站问什么域名解析后还是上线不手机网站制作报价表
  • 郓城网站建设公司怎么做网站数据分析
  • 环保网站设计建设论文山东外贸网站建设是什么
  • 做网站平台应该注意哪些有没有免费的推广平台
  • 网站开发什么语言微信二维码制作网站
  • 网站开发 平面设计岳阳招聘网
  • 中国e网网站建设网上运营培训班
  • 培训机构 网站建设2023必考十大时政热点
  • 企业做网站有哪些好处网站建设的公文格式
  • 如何提升网站收录seo案例分析100例
  • 离开东莞最新政策潍坊百度seo公司
  • 呼和浩特市城乡建设网站昆明软件开发公司有哪些