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

行业网站导航源码/信息流优化师

行业网站导航源码,信息流优化师,做网站的工资高,wordpress企业主题制作视频教程Werkzeug库中的wrappers模块主要对request和response进行封装。request包含了客户端发往服务器的所有请求信息,response包含了web应用返回给客户端的所有信息。wrappers模块对请求和响应的封装简化了客户端、服务器和web应用通信的流程。本文主要介绍wrappers模块中…

Werkzeug库中的wrappers模块主要对requestresponse进行封装。request包含了客户端发往服务器的所有请求信息,response包含了web应用返回给客户端的所有信息。wrappers模块对请求和响应的封装简化了客户端、服务器和web应用通信的流程。本文主要介绍wrappers模块中重要的类。

BaseRequest

BaseRequest是一个非常基础的请求类,它可以和其他的“混合”类结合在一起构建复杂的请求类。只要传递一个环境变量environ(由WSGI服务器根据请求产生),便可以构造一个BaseRequest实例。其构造函数如下:

初始化后,形成的实例request便具有了一些属性可以访问,这些属性只能以“只读”的方式访问。例如:

  • url_charset
  • want_form_data_parsed
  • stream
  • args
  • data
  • form
  • values
  • files
  • cookies
  • headers
  • path
  • full_path
  • script_root
  • url
  • base_url
  • url_root
  • host_url
  • host
  • access_route
  • remote_addr

BaseRequest中还有两个类方法比较常用:

from_values(cls, *args, kwargs)**

这个类方法可以根据提供的参数构建一个请求。

application(cls, f)

这个类方法是一个装饰器,可以用来装饰WSGI可调用对象或函数。

以上属性和方法的具体用法可以参考Request——werkzeug文档。

BaseResponse

BaseResponse类是一个响应类,用它可以封装一个response对象。response对象最大的特点是它是一个WSGI应用。

在之前介绍WSGI规范的文章中曾介绍过Web服务器网关,它简化了服务器和web应用之间的通信过程,它要求服务器和web应用要遵循WSGI规范进行开发。对于web应用而言,应用应该实现一个函数或者一个可调用对象,这样WSGI服务器可以通过调用myWebApp(environ, start_response)从web应用获得响应内容。

response响应对象就是这样一个WSGI应用对象。在其实现过程中有一个__call__方法,可以实现对一个response对象的调用。代码如下:

这样,我们就可以很清楚地理解WSGI应用的实现过程。下面是一个非常简单的WSGI应用。

 

上面的小例子的实现步骤分析:

  1. 根据传入web应用的environ构造请求对象request
  2. web应用构造响应对象response
  3. 调用响应对象response。调用过程中产生三个值:app_iterstatusheaders,其中statusheaders作为参数传递给函数start_response用于生成响应报文首行的相关信息,而app_iter作为响应的内容(它是一个可迭代对象)返回给WSGI网关
  4. WSGI网关将返回的信息组成响应首行、响应首部、响应主体等,形成响应报文发回给客户端。

BaseResponse类中还有一些属性和方法,以下属性和方法的具体用法可以参考Response——werkzeug文档。

  • 属性
    • status_code
    • status
    • data
    • is_stream
    • is_sequence
    • ······
  • 方法
    • call_on_close(func)
    • close()
    • freeze()
    • force_type() 类方法
    • from_app() 类方法
    • set_data()
    • get_data()
    • _ensure_sequence()
    • make_sequence()
    • iter_encoded()
    • calculate_content_length()
    • set_cookie()
    • delete_cookie()
    • get_wsgi_headers(environ)
    • get_app_iter(environ)
    • get_wsgi_response(environ)
    • __call__(environ, start_response)
    • ······

Mixin类

BaseRequest类和BaseResponse类是请求和响应最基础的类。wrappers模块中还提供了一些Mixin类,用于扩展请求类和响应类。

有关请求类的Mixin

有关请求类的Mixin类主要有:

  • AcceptMixin类 ——请求报文中关于客户端希望接收的数据类型的类。
  • ETagRequestMixin类 ——请求报文中关于Etag和Cache的类。
  • UserAgentMixin类 ——请求报文中关于user_agent的类。
  • AuthorizationMixin类 ——请求报文中关于认证的类。
  • CommonRequestDescriptorsMixin类 ——通过这个类可以获取请求首部中的相关信息。

有关响应类的Mixin

有关响应类的Mixin类主要有:

  • ETagResponseMixin类 ——为响应增加Etag和Cache控制的类。
  • ResponseStreamMixin类 ——为响应可迭代对象提供一个“只写”的接口的类。
  • CommonResponseDescriptorsMixin类 ——通过这个类可以获取响应首部中的相关信息。
  • WWWAuthenticateMixin类 ——为响应提供认证的类。

RequestResponse

终于讲到Request类和Response类了。

Request类继承自BaseRequest类,并且结合一些请求相关的Mixin类,具体如下:

Response类继承自BaseResponse类,并且结合一些响应相关的Mixin类,具体如下:

至此,可以从wrappers模块中引入Request类和Response用于构建请求对象和响应对象。

转载于:https://www.cnblogs.com/dancesir/p/7808360.html

http://www.jmfq.cn/news/4883977.html

相关文章:

  • 定制网站建设公司费用/seo排名官网
  • 网站首页轮播怎么做/树枝seo
  • 郑州餐饮网站建设公司排名/广告推广渠道有哪些
  • 设计网站的结构时下面哪个方法不好/软文范例300字
  • 网络营销师培训学校/seo工具在线访问
  • 百度多久收录一次网站/汕头疫情最新消息
  • 可以让外国人做问卷调查的网站/网站关键词百度自然排名优化
  • wordpress手机端/黑帽seo优化软件
  • 扬中网站建设价格/厦门关键词优化企业
  • 百度做网站的费用/药品销售推广方案
  • 政府网站官网/新闻今日要闻
  • 做网站如何与腾讯合作/信息流优化师发展前景
  • 棋牌源码之家/百度seo不正当竞争秒收
  • ueditor是做网站的吗/谷歌seo站内优化
  • 想开网站怎样做/seo蜘蛛池
  • 爱站seo工具包/精准营销平台
  • 学校网站模板 html/可以进入任何网站的浏览器
  • 嵊州哪里可以做网站/建网站用什么工具
  • html网站登录界面模板下载/怎么做起泡胶
  • 贵州网站建设推荐/网站内部seo
  • Java做网站的学习路线/网店推广常用的方法
  • 成都建站哪家好/建设企业营销型网站
  • 做网站平台接单/百度seo公司兴田德润
  • 桂林象鼻山是什么地貌/网站seo关键词设置
  • 厦门谁需要网站建设/漯河网络推广哪家好
  • 建设网站规模与类别/合肥网络推广软件系统
  • 做学分网站/百度权重是怎么来的
  • 网站建设宣传广告语/百度指数怎么用
  • 上海专业的网站公/火蝠电商代运营公司
  • 厦门集团网站建设/直播:韩国vs加纳直播