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

音乐网站设计新汉阳火车站最新消息权威发布

音乐网站设计,新汉阳火车站最新消息权威发布,网站建设尺寸大小,网站开发和运作的财务预算什么是中间件#xff1f; 中间件#xff08;Middleware#xff09;是位于 Web 服务器和应用程序之间的组件#xff0c;它可以处理每个请求和响应。中间件的主要作用是在请求到达应用程序之前或响应返回客户端之前对其进行处理。中间件可以执行各种任务#xff0c;如日志记…什么是中间件 中间件Middleware是位于 Web 服务器和应用程序之间的组件它可以处理每个请求和响应。中间件的主要作用是在请求到达应用程序之前或响应返回客户端之前对其进行处理。中间件可以执行各种任务如日志记录、身份验证、请求解析、响应压缩等。 中间件的作用 日志记录 记录请求的时间、方法、路径等信息便于调试和监控。 身份验证和授权 检查请求是否包含有效的认证信息确保只有授权用户可以访问特定资源。 请求解析 解析请求体提取所需的数据以便应用程序处理。 响应处理 修改响应头添加缓存控制、内容编码等信息。压缩响应体减少传输数据量。 错误处理 捕获和处理应用程序中的异常返回友好的错误信息。 性能监控 记录请求的处理时间监控应用程序的性能。 示例代码中的中间件 在你的示例代码中定义了两个中间件TimeCalculateMiddleware 和 AuthMiddleware。 1. TimeCalculateMiddleware class TimeCalculateMiddleware(BaseHTTPMiddleware):async def dispatch(self, request: Request, call_next):print(TimeCalculateMiddleware-Start)start_time time.time()response await call_next(request)process_time round(time.time() - start_time, 4)# 返回接口响应时间response.headers[X-Process-Time] f{process_time} (s)print(TimeCalculateMiddleware-End)return response 作用 记录请求的处理时间。将处理时间添加到响应头中方便客户端或监控系统查看。 具体实现 dispatch 方法是中间件的核心它接收 request 和 call_next 两个参数。start_time 记录请求开始的时间。response await call_next(request) 调用下一个中间件或最终的路由处理函数。process_time 计算请求的处理时间。将处理时间添加到响应头中使用 response.headers[X-Process-Time]。打印开始和结束的调试信息。 2. AuthMiddleware class AuthMiddleware(BaseHTTPMiddleware):def __init__(self, app, header_valueauth):super().__init__(app)self.header_value header_valueasync def dispatch(self, request: Request, call_next):print(AuthMiddleware-Start)response await call_next(request)response.headers[Custom] self.header_valueprint(AuthMiddleware-End)return response 作用 添加自定义的响应头。在响应头中添加一个 Custom 头值为 header_value。 具体实现 __init__ 方法初始化中间件接收 app 和 header_value 参数。dispatch 方法接收 request 和 call_next 参数。调用 call_next(request) 处理请求。将 Custom 头添加到响应头中使用 response.headers[Custom]。打印开始和结束的调试信息。 注册中间件 app.add_middleware(TimeCalculateMiddleware) app.add_middleware(AuthMiddleware, header_valueCustomAuth) 作用 将中间件注册到 FastAPI 应用中。app.add_middleware 方法用于添加中间件。第一个参数是中间件类第二个参数是传递给中间件构造函数的参数。 路由处理 app.get(/index) async def index():print(index-Start)return {code: 200} 作用 定义一个简单的路由处理函数处理 /index 路径的 GET 请求。返回一个 JSON 响应包含 code 字段。 启动应用 if __name__ __main__:import uvicornimport osapp_model_name os.path.basename(__file__).replace(.py, )print(app_model_name)uvicorn.run(f{app_model_name}:app, host0.0.0.0, reloadTrue) 作用 启动 FastAPI 应用。使用 uvicorn 作为 ASGI 服务器。host0.0.0.0 表示应用监听所有网络接口。reloadTrue 表示启用自动重载方便开发调试。 总结 中间件在 Web 开发中是非常重要的组件它们可以处理各种请求和响应的预处理和后处理任务。通过定义和注册中间件可以实现日志记录、身份验证、性能监控等功能从而提高应用的健壮性和可维护性。
http://www.dnsts.com.cn/news/232434.html

相关文章:

  • 如何自己设置网站深圳的网站设计
  • 易乐自助建站用淘宝做公司网站
  • 关于做香奈儿网站的PPT二元期权网站建设
  • 校园网站建设需要数据库吗学建筑的女生后悔吗
  • 网站数据不变重新安装wordpress大尺度做爰网站
  • 南京汽车 企业 网站建设北大青鸟教网站开发吗
  • 您网站建设手机在线logo生成器
  • 最新淘宝客网站程序优化公司治理结构的措施
  • h5彩票网站怎么做新农村建设举报网站
  • 陕西省建设集团公司网站开放平台的核心目的是
  • 网站建设与管理指什么电子商务网站开发的步骤
  • 网站seo外包技术资源网站界面设计内容
  • 做视频网站要什么网站如何做cdn
  • wp建站系统wordpress 页码插件
  • 网站设计流程图网站开发 名片
  • 手机app下载网站辽宁省建设工程招标协会网站
  • 网站建设合同 含维护费网站建设个人
  • 海口网站建设就q479185700上墙苏州外贸公司网站建设流程
  • 定西网站建设近几天的新闻摘抄
  • 滨州市住房和城乡建设局网站seo关键词排名优化系统源码
  • 韶关网站建设的公司中国企业500强净利润排名
  • 电商网站方案建设室内装修设计软件app哪个好
  • 国外设计网站 绿色的财经网站模板
  • 啪啪男女禁做视频网站洪宇建设集团公司网站
  • 株洲专业网站建设品牌网址查询ip解析
  • 网站维护目标深圳app开发公司排名前十
  • 大型手机网站制作龙岩营销型网站建设
  • 菏泽市建设局网站创建个人网站多少钱
  • 计算机专业论文 网站建设好公司网站建设价格
  • 蚂蚁分类信息网站建设织梦做的网站页面打不开