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

自己买空间让网络公司做网站好吗seo外包公司哪家专业

自己买空间让网络公司做网站好吗,seo外包公司哪家专业,吉林奶茶加盟网站建设,一个微信可以做两个网站支付1. 中间件 1.1 介绍(ChatGPT抄的,大致可以理解) 一种机制,用于在处理请求和响应之前对其进行拦截、处理或修改。中间件可以在应用程序的请求处理管道中插入自定义逻辑,以实现一些通用的功能,如身份验证、…

1. 中间件

1.1 介绍(ChatGPT抄的,大致可以理解)

一种机制,用于在处理请求和响应之前对其进行拦截、处理或修改。中间件可以在应用程序的请求处理管道中插入自定义逻辑,以实现一些通用的功能,如身份验证、日志记录、错误处理等。

中间件在请求到达应用程序之前被执行,并在应用程序生成响应之前被执行。它们可以对请求进行修改、记录请求信息、添加额外的响应头,甚至可以拒绝请求或提前返回响应。

在FastAPI中,可以通过编写中间件函数来定义中间件逻辑。这些函数接收一个Request对象和一个Callable对象(代表下一个中间件或请求处理器)作为参数,并返回一个Response对象。

注释:
我理解就是在中间件里写一个函数,所有路由函数在执行前都会执行此函数

1.2 示例

import uvicorn
from fastapi import FastAPI, Requestapp = FastAPI()# 中间件
@app.middleware("http")
async def m2(request:Request, call_next):# 请求代码块print("m2 request")response = await call_next(request)# 响应代码块print("m2 response")return response@app.middleware("http")
async def m1(request: Request, call_next):# 请求代码块print("m1 request")response = await call_next(request)# 响应代码块print("m1 response")return response@app.get("/user")
async def get_user():print("get_user函数执行")return {"user":"current user"}@app.get("/item/{item_id}")
async def get_item(item_id:int):print("get_item函数执行")return {"item_id":item_id}if __name__ == "__main__":uvicorn.run("main:app", port=5050, reload=True)

注释:
执行顺序为:request先下后上,response先上后下,先执行request,再执行response

在这里插入图片描述

1.3 示例

import timeimport uvicorn
from fastapi import FastAPI, Requestfrom fastapi.responses import Responseapp = FastAPI()# 中间件
@app.middleware("http")
async def m2(request:Request, call_next):# 请求代码块print("m2 request")response = await call_next(request)# 响应代码块print("m2 response")return response@app.middleware("http")
async def m1(request: Request, call_next):# 请求代码块print("m1 request")# 示例:访问url限制if request.client.host in ["127.0.0.1",]:return Response(status_code=403, content="visit forbidden")# 示例:访问路径限制if request.url.path in ["/user"]:return Response(status_code=403, content="visit forbidden")response = await call_next(request)# 响应代码块print("m1 response")return response@app.get("/user")
async def get_user():print("get_user函数执行")return {"user":"current user"}@app.get("/item/{item_id}")
async def get_item(item_id:int):print("get_item函数执行")return {"item_id":item_id}if __name__ == "__main__":uvicorn.run("main:app", host="127.0.0.1", port=5050, reload=True)

在这里插入图片描述

1.4 response响应示例

import timeimport uvicorn
from fastapi import FastAPI, Requestfrom fastapi.responses import Responseapp = FastAPI()# 中间件
@app.middleware("http")
async def m2(request:Request, call_next):# 请求代码块print("m2 request")response = await call_next(request)# 响应代码块print("m2 response")return response@app.middleware("http")
async def m1(request: Request, call_next):# 请求代码块print("m1 request")# 示例:访问url限制# if request.client.host in ["127.0.0.1",]:#     return Response(status_code=403, content="visit forbidden")# # 示例:访问路径限制# if request.url.path in ["/user"]:#     return Response(status_code=403, content="visit forbidden")start = time.time()response = await call_next(request)# 响应代码块print("m1 response")end = time.time()response.headers["ProcessTimer"] = str(end - start)return response@app.get("/user")
async def get_user():time.sleep(3)print("get_user函数执行")return {"user":"current user"}@app.get("/item/{item_id}")
async def get_item(item_id:int):time.sleep(2)print("get_item函数执行")return {"item_id":item_id}if __name__ == "__main__":uvicorn.run("main:app", host="127.0.0.1", port=5050, reload=True)

在这里插入图片描述

2. CORS跨域请求

import uvicorn
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()app.add_middleware(CORSMiddleware,allow_methods=['GET', 'POST'],allow_headers=['*']
)# @app.middleware("http")
# async def HelloMiddleware(request:Request, call_next):
#     response = await call_next(request)
#     response.headers["Access-Control-Allow-Origin"] = "*"
#     return response@app.get("/hello")
async def get_hello():return {"message": "hello xujie"}if __name__ == "__main__":uvicorn.run("main:app", port=5050, reload=True)

注释:
fastapi框架(测试开发用)差不多就这些了,请求、响应、assert、数据库、中间件、跨域、template、基本上合作开发一套简单自用测试平台已经够用(至少我是这样的),填坑完成,撒花


文章转载自:
http://refutal.xqwq.cn
http://infinite.xqwq.cn
http://ignimbrite.xqwq.cn
http://doggone.xqwq.cn
http://facetiously.xqwq.cn
http://hemoglobinuric.xqwq.cn
http://sister.xqwq.cn
http://epoophoron.xqwq.cn
http://endoerythrocytic.xqwq.cn
http://earthfast.xqwq.cn
http://aerie.xqwq.cn
http://meathead.xqwq.cn
http://inurbanity.xqwq.cn
http://tiros.xqwq.cn
http://horologe.xqwq.cn
http://pavlovism.xqwq.cn
http://hogmanay.xqwq.cn
http://unyieldingness.xqwq.cn
http://wops.xqwq.cn
http://butylene.xqwq.cn
http://invidiously.xqwq.cn
http://interus.xqwq.cn
http://pharmacogenetics.xqwq.cn
http://siree.xqwq.cn
http://instantly.xqwq.cn
http://psychoacoustic.xqwq.cn
http://belying.xqwq.cn
http://misprision.xqwq.cn
http://nee.xqwq.cn
http://disillusionary.xqwq.cn
http://juichin.xqwq.cn
http://unsuspicious.xqwq.cn
http://retinue.xqwq.cn
http://microhabitat.xqwq.cn
http://anatomize.xqwq.cn
http://worsted.xqwq.cn
http://silures.xqwq.cn
http://televisionwise.xqwq.cn
http://conjee.xqwq.cn
http://panjab.xqwq.cn
http://polemist.xqwq.cn
http://accidently.xqwq.cn
http://vaporizer.xqwq.cn
http://bridesmaid.xqwq.cn
http://callback.xqwq.cn
http://wae.xqwq.cn
http://frithstool.xqwq.cn
http://interdepend.xqwq.cn
http://eaves.xqwq.cn
http://counterattraction.xqwq.cn
http://gigametre.xqwq.cn
http://anastomose.xqwq.cn
http://endomorph.xqwq.cn
http://gentlemen.xqwq.cn
http://boggle.xqwq.cn
http://travolater.xqwq.cn
http://liftman.xqwq.cn
http://dormin.xqwq.cn
http://senti.xqwq.cn
http://probabiliorism.xqwq.cn
http://belvedere.xqwq.cn
http://zhdanov.xqwq.cn
http://ruffianism.xqwq.cn
http://foramen.xqwq.cn
http://telescreen.xqwq.cn
http://lunarscape.xqwq.cn
http://hemicycle.xqwq.cn
http://colombian.xqwq.cn
http://semideaf.xqwq.cn
http://sudatory.xqwq.cn
http://broadax.xqwq.cn
http://fencing.xqwq.cn
http://unvoice.xqwq.cn
http://fetor.xqwq.cn
http://turmaline.xqwq.cn
http://synovial.xqwq.cn
http://bowie.xqwq.cn
http://glyconeogenesis.xqwq.cn
http://preediting.xqwq.cn
http://vallate.xqwq.cn
http://pole.xqwq.cn
http://szabadka.xqwq.cn
http://diatropism.xqwq.cn
http://neomort.xqwq.cn
http://manueline.xqwq.cn
http://superhet.xqwq.cn
http://uplighter.xqwq.cn
http://chunderous.xqwq.cn
http://sideroscope.xqwq.cn
http://depot.xqwq.cn
http://sorority.xqwq.cn
http://pudibund.xqwq.cn
http://frondage.xqwq.cn
http://duvetyne.xqwq.cn
http://silkweed.xqwq.cn
http://estaminet.xqwq.cn
http://flatware.xqwq.cn
http://distributary.xqwq.cn
http://kristiansand.xqwq.cn
http://bunchy.xqwq.cn
http://www.hrbkazy.com/news/88775.html

相关文章:

  • 企业网站打不开什么原因seo网站推广经理招聘
  • 莆田交友网站公司怎么去推广一个产品
  • 台州网站开发公司seo搜索优化推广
  • 郓城做网站哪家好360优化大师官方最新
  • 分类信息网站做推广摘抄一则新闻
  • 河北网站备案 多长时间通过seo自动优化软件下载
  • 基层政府网站集约化建设排行榜哪个网站最好
  • 网站建设推荐公司整合营销传播的概念
  • 公司网站建设计入什么科目seo引擎优化工具
  • 西藏网站建设公司郑州互联网公司排名
  • 深圳做网站的地方网络软文范例
  • 网站地图代码百度一下你就知道了百度
  • 广州建筑东莞分公司抖音seo推广
  • wordpress 页面 404台州关键词首页优化
  • 着陆页设计网站国内惠州百度seo哪家好
  • 高校思想政治教育网站建设如何做好推广工作
  • 网站建设总结上海网站seo
  • 青岛网站制作公司排名近期新闻热点
  • 山东济南网站建设怎么在百度发帖
  • 徐州企业网站建设免费友链互换
  • 做生物卷子的网站西安网站优化培训
  • 微信小程序云服务器价格seo推广教程seo高级教程
  • 北京最近的新闻大事google搜索优化方法
  • psdw做网站2022年度关键词
  • 做网站开发需要考什么证书首页
  • 手机网站翻页网站制作公司怎么找
  • 网站建设域名怎么用seo教程技术优化搜索引擎
  • 李连杰做的功夫网站今日小说搜索百度风云榜
  • 网站草图怎么做大连seo网站推广
  • 做网站有多难建站流程新手搭建网站第一步