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

威海网站建设哪家的好检查网站有没有做301

威海网站建设哪家的好,检查网站有没有做301,wordpress美化文章标题,怎么免费建立自己的网站步骤WSGI Middleware 中间件,可以理解称对应用程序的一组装饰器,对两边都起作用的元素。 重写environ,然后基于URL,将请求对象路由给不同的应用对象支持多个应用或者框架顺序地运行于同一个进程中通过转发请求和相应,支持负…

WSGI

Middleware

中间件,可以理解称对应用程序的一组装饰器,对两边都起作用的元素。

  • 重写environ,然后基于URL,将请求对象路由给不同的应用对象
  • 支持多个应用或者框架顺序地运行于同一个进程中
  • 通过转发请求和相应,支持负载均衡和远程处理
  • 支持对内容做后处理

应用程序看来,它可以提供一个类start_response函数,可以像start_response函数一样接收HTTP STATU和Headers和environ。

服务端看来,它可以接收2个参数,并且可以返回一个类Application对象。

练习:实现记录每次请求消耗时间功能的中间件

import time # time模块,获取当前时间,以便计算请求的处理时间
# 来自wsgiref.simple_server模块的make_server函数,用于创建一个简单的WSGI服务器
from wsgiref.simple_server import make_serverHELLO_WORLD = b'Hello, World!\n'# doucment.charset 网页摁F12在控制台输出该指令查询编码格式class ResponseTimingMiddleware(object): # 中间件类def __init__(self, app):
        self.app = appdef __call__(self, env, start_response): # __call__方法使得类的实例可以像函数一样被调用
        start_time = time.time()
        response = self.app(env, start_response)
        end_time = time.time()
        res_time = (end_time - start_time) * 1000 # 将秒转换为毫秒# 保留十位小数
        timing_text = "记录请求耗时中间件输出\n\n本次请求耗时:{:.10f}ms \n\n".format(res_time)
        # 将生成的时间记录信息转换为字节类型(使用encode()方法),并将其添加到相应内容response中
        response.append(timing_text.encode())return responsedef simple_app(environ, start_response):
    # 状态码
    status = '200 OK'
    # 设置Content-type响应头,明确字符编码为 utf-8(解决中文乱码问题) 
    response_header = [('Content-type', 'text/plain; charset=utf-8')] # 格式固定    return_body = []# environ 是一个包含了所有HTTP请求信息的字典for k, v in environ.items():
        return_body.append("{}: {}".format(k, v))    start_response(status, response_header)return ["\n".join(return_body).encode()]# 创建应用程序
app = ResponseTimingMiddleware(simple_app)server=make_server('127.0.0.1',8080,app=app)  # 127.0.0.1  app(env, start_response)
server.serve_forever()

  • 中间件类 ResponseTimingMiddleware:
  • __init__ 方法:初始化中间件类,接收一个 WSGI 应用程序 app 作为参数,并将其存储在实例属性 self.app 中。
  • __call__ 方法:使得类的实例可以像函数一样被调用。
  • 该方法在每次处理请求时被调用,具体步骤如下:
    • start_time = time.time()记录请求开始的时间。
    • response = self.app(env, start_response)调用原始的 WSGI 应用程序处理请求,并获取响应内容。
    • end_time = time.time()记录请求结束的时间。
    • res_time = (end_time - start_time) * 1000计算请求的处理时间,并将其转换为毫秒。
    • timing_text生成包含请求处理时间的文本信息,保留十位小数。
    • response.append(timing_text.encode())将时间记录信息转换为字节类型,并添加到响应内容中。
    • return response返回包含时间记录信息的响应内容。
  • WSGI 应用程序 simple_app:

  • environ是一个包含了所有 HTTP 请求信息字典,如请求方法、请求 URL、请求头信息等。
  • start_response是一个回调函数,用于设置响应的状态码和响应头
  • status设置响应的状态码为“ 200 OK”,表示请求成功。
  • response_header设置响应头,指定响应内容的类型为纯文本,并使用 UTF-8 编码,以解决中文乱码问题。
  • return_body遍历 environ 字典,将每个键值对转换为字符串,并添加到 return_body 列表中。
  • start_response(status, response_header)调用 start_response 回调函数,设置响应的状态码和响应头。
  • return ["\n".join(return_body).encode()]将 return_body 列表中的字符串用换行符连接起来,转换为字节类型,并作为响应内容返回。
  • 创建应用程序并启动服务器:
  • app = ResponseTimingMiddleware(simple_app)将 simple_app 应用程序包装在 ResponseTimingMiddleware 中间件中,创建一个新的应用程序
  • make_server('127.0.0.1', 8080, app=app)创建一个简单的 WSGI 服务器,监听本地地址 127.0.0.1 的 8080 端口,并使用 app 作为处理请求的应用程序
  • server.serve_forever()启动服务器,并使其一直运行,不断处理接收到的请求。

运行这段 Python 代码后,会启动一个简单的 WSGI(Web Server Gateway Interface)服务器,该服务器监听本地的 8080 端口,处理客户端的 HTTP 请求,并在响应中添加请求处理时间的记录信息

Webpy

web.py是一款轻量级的python web开发框架,简单、高效、学习成本低,特别适合作为python web开发的入门框架

app.py

import web
#每个web.py应用必须先导入import web模块#URL处理
#告诉webpy怎么组织URL
#第一部分是匹配URL的正则表达式
#第二部分是接受请求的类名称
#
urls 是一个元组,用于定义 Web 应用的路由规则。路由规则决定了不同的 URL 请求将由哪个类或函数来处理'/(.*)':这是一个正则表达式/表示根路径(.*)表示捕获根路径之后任意字符序列(包括空字符)。该正则表达式的作用匹配所有的 URL 请求'Hello':表示当匹配到上述正则表达式的 URL 请求时,将由名为 Hello的类处理该请求urls = (    '/(.*)', 'hello'
)#创建一个列举这些URL的application
# globals():这是 Python 的内置函数,返回当前全局符号表的字典。
web.py会使用这个字典来查找路由规则中指定的处理类(如 Hello 类)app = web.application(urls, globals())class hello:        # 在 web.py中,GET方法用于处理 HTTP GET 请求
    def GET(self, name): # name是从 URL 中捕获的参数(由正则表达式 (.*)捕获)if not name: 
            name = 'World'return 'Hello, ' + name + '!'application = app.wsgifunc()
#
app.wsgifunc():这是 web.py提供的一个方法,用于将 web.py应用实例转换为符合 WSGI 协议的可调用对象application:将转换后的 WSGI 可调用对象赋值给 application 变量。这样做的目的是为了让应用可以在支持 WSGI 的服务器(如 Gunicorn、uWSGI 等)上部署和运行。# 让web.py启动网页应用if __name__ == "__main__":
    app.run() 
#
调用 web.py应用实例的 run()方法,启动一个内置的简单 Web 服务器,监听默认端口(通常是 8080),开始处理客户端的 HTTP 请求


 


文章转载自:

http://S4vlwI8e.brwgp.cn
http://ebvIMmk0.brwgp.cn
http://g0q1O9Cv.brwgp.cn
http://d5z9sgYq.brwgp.cn
http://RDKpGNpe.brwgp.cn
http://Fk3enqQ9.brwgp.cn
http://2j2ZNglQ.brwgp.cn
http://hoZQsiDk.brwgp.cn
http://EHYxh8Ei.brwgp.cn
http://qowaIpeT.brwgp.cn
http://4tpFtgWi.brwgp.cn
http://Y2YAkAsY.brwgp.cn
http://AUXW2rlK.brwgp.cn
http://yXmbGlT4.brwgp.cn
http://kwF9WHWr.brwgp.cn
http://Gfa7ayXZ.brwgp.cn
http://ATrlT9Zq.brwgp.cn
http://POhuqPGw.brwgp.cn
http://UhW0tY5G.brwgp.cn
http://svWAZKeu.brwgp.cn
http://b1hUk400.brwgp.cn
http://J4KAYc4K.brwgp.cn
http://zpDw8Lex.brwgp.cn
http://vTcGV329.brwgp.cn
http://UDGnhW47.brwgp.cn
http://JAD2z9O5.brwgp.cn
http://1qncbyFZ.brwgp.cn
http://tuyR7vLV.brwgp.cn
http://0MBFRLEV.brwgp.cn
http://1y2JrO5F.brwgp.cn
http://www.dtcms.com/wzjs/634860.html

相关文章:

  • 做pvc卡片的交流网站做个人网站到哪里做
  • 典型网站建设万网账户
  • 网站开发毕业设计说明书范文网站服务器搭建与管理
  • 现在还有企业要建网站吗wordpress 点击次数
  • asp跳转到别的网站一流小说网站模板
  • 网站在当地做宣传手机模板网站模板下载
  • 个人网站怎么做淘宝客定制网络开发软件
  • 网站备案提交山西网络公司公司
  • 怎样申请网站域名和空间2023年电脑端网游
  • wordpress解密seo快速排名软件方案
  • 湖北中牛建设有限公司网站湖南建设人力资源湖南网站建设
  • 网站源代码制作产品设计包括哪些方面
  • 站长推荐产品wordpress怎么添加图片不显示图片
  • 建设工程其它费计算网站提升网站访问量
  • 重庆市建筑网站建设做色流网站
  • 如何免费注册一个网站百度关键词排名优化工具
  • 做杂志一般在哪个网站找感觉263企业邮箱登官网
  • 重庆建网站诚选快忻科技悉心集团公司简介模板
  • 可以做防盗水印的网站wordpress图片属性添加
  • 怎么建设个人网站教程江苏新有建设集团有限公司官方网站
  • 护肤品网站制作 网新科技旅游营销的网站建设
  • 大良网站智能推广如何企业网站开发韵茵
  • 创业平台网站做网站话挣钱吗
  • 好的平面设计网站有哪些混沌鸿蒙网站建设
  • 网站项目设计说明书360优化大师下载官网
  • 如何制作门户网站wordpress oauth2插件
  • 教育品牌加盟网站建设wordpress调用指定文章图片路径
  • 优设计网站建设手表欧米茄官网
  • 找人做网站推广可口可乐公司建设网站的目的是什么意思
  • 设计接单兼职网站wordpress小工具文章页