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

关键词排名优化网站建设公司哪家好网站建设项目分析

关键词排名优化网站建设公司哪家好,网站建设项目分析,沈阳旅游集团网站建设,珠海市建设工程交易网session 自我介绍基本使用#xff1a; 在Flask中#xff0c;Session是一种用于在客户端和服务器之间存储和传输数据的机制。它允许您在用户与应用程序之间保持状态#xff0c;并且可以存储和检索有关特定用户的信息。 Flask使用Werkzeug库提供的SecureCookie来实现S…session 自我介绍基本使用 在Flask中Session是一种用于在客户端和服务器之间存储和传输数据的机制。它允许您在用户与应用程序之间保持状态并且可以存储和检索有关特定用户的信息。 Flask使用Werkzeug库提供的SecureCookie来实现Session功能。默认情况下Flask会为每个客户端生成一个唯一的Session ID并将该ID存储在Cookie中发送给客户端。然后Flask将Session数据存储在服务器端并根据Session ID将相应的数据与请求进行关联。 实战使用Flask Session from flask import Flask, sessionapp Flask(__name__) # 创建Flask应用程序对象 app.secret_key GuHanZheIsCool # 设置Secret Keyapp.route(/x1) def index():# 通过session字典设置session数据session[name] 小明return Indexapp.route(/x2) def index():# 通过session字典获取session数据print(session[name])return Orderif __name__ __main__:app.run() 以上是使用Flask中Session的基本步骤。通过在Session中存储用户的信息您可以跟踪用户的状态并在不同请求之间共享数据。 需要注意的是设置Secret Key是必要的因为它用于对Session数据进行加密和解密以确保数据的安全性你可以试试不设置会报错~。 然而**请注意Session数据默认存储在服务器端在高流量的情况下可能会对服务器造成负担。**如果需要存储大量或敏感数据请考虑使用数据库或其他外部存储解决方案来代替默认的Session机制。 分析session会是个什么 正如我上面那个实例代码中的注释所写—session是一个dict字典对象。但是知其然更要知其所以然所以下面来理性分析一波如何能看出它是一个dict字典对象【先理论分析后扒源码】~ session[name] 小明session[name] 情况一 在Python中很容易想到如果有个玩意可以通过上两行代码所示方式进行操作那么这个玩意很大可能是个对象。那么的话这两个操作将会调用对象的__setitem__和__getitem__方法。 当使用session[name] 小明时会调用session对象的__setitem__方法该方法用于设置键值对。 当使用session[name]时会调用session对象的__getitem__方法该方法用于获取键对应的值。 示例代码如下 class Session:def __init__(self):self.data {}def __setitem__(self, key, value):self.data[key] valuedef __getitem__(self, key):return self.data[key]session Session() session[name] 小明 # 调用 __setitem__ 方法 value session[name] # 调用 __getitem__ 方法 print(value) # 输出: 小明在上述示例中我们定义了一个Session类其中实现了__setitem__和__getitem__方法来模拟session对象的行为。通过调用session[name] 小明和session[name]分别触发了对应的方法实现了键值对的设置和获取操作。 那么还有什么其他的可能吗 情况二 可不能忘了字典哦~ v dict() v[name] 小明 v[name]所以如果一个类继承dict的话也可以class Foo2(dict):passobj Foo2() obj[xxx] 小明 而Flask里的session源码就是使用的上述情况二姑且称之为特殊的字典字典有的它都有字典没有的它也可以有【可以额外自定义一些功能】。 扒扒源码 请求一进来立即执行app对象【app Flask(__name__) # 创建Flask应用程序对象】的call()方法。 继续进 下图这个函数的参数environ就是请求相关的原生字符串数据那么源码肯定有相关的处理逻辑来处理environ为易于使用的数据结构。 所以继续进self.request_context(environ)【返回的self就是最原始的app对象】 继续进 继续进第一个红框 所以第一个红框就是将environ最终交给Request类来进行处理【加工处理原生的请求相关数据】最后再返回给request对象 还记得从Flask里导出的request对象具备好多方法不比如request.args、request.methods等。这些就是上述Request类对原生数据加工处理之后才有的~ 而第二个红框又说明当用户请求第一次进来时session设置为空。 往外出几层 可见ctx里既有request对象又有session对象拿到ctx的话就拿到了这俩~ 继续走即上图中的ctx.push() 下述红框就是给session赋值【红框第三句传self.request参数是因为cookie在request对象中~】 进session_interface 即self.session SecureCookieSessionInterface().open_session(self.app, self.request) 进open_session 用户请求第一次进来val是为空的所以直接返回self.session_class() 回到最初的起点 继续进self.session_class()看看 继续看其继承的父类CallbackDict 继承了字典 所以就说明下图这里session现在是一个特殊的字典 回到最开始session的使用当用户的第一次请求到来还没到视图时会将ctx里的session设置为空当进入视图执行session[name] 小明这一句时会去ctx里获取session并设置相应的键值。 当设置完session后继续走源码 视图函数执行走这 进去 首先把特殊的字典session转换为字典然后dumps得到的val就是序列化的结果。 下次这个用户请求再进来session就有值了就走另一条路了 loads就是反序列化成字典data然后self.session_class(data)再放到特殊的字典里。 整个流程 1. 请求刚刚到来ctx RequestContext(...)- request- session Nonectx.push()ctx.session SecureCooieSessionInterface.open_session()2. 视图函数3. 请求结束ctx.session SecureCooieSessionInterface.save_session()
http://www.sadfv.cn/news/11229/

相关文章:

  • 工程建设网站策划方案云浮市哪有做网站的
  • 广州机械网站建设360如何做免费的网站
  • 北京做网站的大公司有哪些wordpress整站备份插件
  • 自助建设网站网站设计 手写
  • 自己做的网站如何上传山东省住房和城乡建设厅领导名单
  • 手机网站制作服务机构网站与网页的区别.
  • 网站用的服务器是什么互联网软件外包
  • 制作网站能赚钱吗建设银行网网站打不开
  • 网站建设企业谁家好个人中心页面设计html
  • 昆山快速建设网站方案如何快速建网站
  • 做的网站.如何在局域网内访问网站大全软件
  • 国外做家纺的网站山西省网站建设备案表
  • 天猫店铺申请条件及费用seo查询什么意思
  • 门户网站的设计介绍好的免费网站模板下载地址
  • 汕头站扩建招标网站建设小结
  • 在対网站做可能的来自内部和外部的攻击网页页面怎么设计
  • 太原网站制作开发苏州网络推广公司服务平台
  • 企业网站怎么自适应个人公司网页如何设计
  • app开发去哪个网站网业协同具体指什么
  • 企业网站建设兴田德润怎么联系家政网站建设方案
  • 外贸推广建站房地产网站推广
  • 装修网站建设摘要做书网站
  • 做网站大概一个月多少工资在线制作非主流流光闪字 急切网
  • 网站建设费往什么科目算命手机网站开发
  • 佛山新网站制作怎么样百度搜索引擎入口官网
  • wordpress备份百度云优化设计官方电子版
  • 成品在线网站免费入口信息公开 强化网站建设
  • 常德市 网站建设濮阳招聘大濮网
  • 江门网站推广深圳公司网上投资网站建设
  • 找公司做网站有什么好处软件开发公司的成本有哪些