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

西部数据网站助手手机版百度入口

西部数据网站助手,手机版百度入口,淄企业网站建设公司,在个人网站上做电商营业执照一,概述 有时候,开发一个简单的后端应用,使用Spring显得太冗余、臃肿,这个时候FastAPI便是首选。 FastAPI 是一个现代化的高性能 Python Web 框架,专门用于构建 API(应用程序编程接口)。它基于…

一,概述

有时候,开发一个简单的后端应用,使用Spring显得太冗余、臃肿,这个时候FastAPI便是首选。

FastAPI 是一个现代化的高性能 Python Web 框架,专门用于构建 API(应用程序编程接口)。它基于 Python 3.7+ 的类型提示(Type Hints)特性,结合了 Starlette(用于 Web 处理)和 Pydantic(用于数据验证)两大组件。

核心特点

  1. 极高性能

    • 与 NodeJS 和 Go 相当的性能

    • 得益于 Starlette 和 Pydantic 的底层优化

  2. 快速开发

    • 自动生成交互式 API 文档(Swagger UI 和 ReDoc)

    • 智能编辑器支持,减少调试时间

  3. 类型安全

    • 基于 Python 类型提示

    • 在编码时即可捕获许多错误

  4. 异步支持

    • 原生支持 async/await

    • 适合 I/O 密集型应用

主要功能

  • 请求参数自动验证

  • 依赖注入系统

  • 安全与认证(OAuth2、JWT等)

  • WebSocket 支持

  • GraphQL 集成

  • 测试客户端

二,实例

from typing import Listfrom fastapi import FastAPI, Query, Header, Cookie, Requestfrom pydantic import BaseModelfrom route1 import route_apiclass Body(BaseModel):name: strsize: intdef __str__(self):return f"name={self.name},size={self.size}"# 创建应用实例
app = FastAPI()
# 导入模块路由
app.include_router(route_api)# 定义路由
@app.get("/")
async def read_root():return {"message": "欢迎使用 FastAPI"}"""
路径参数实例
"""@app.get("/items/{item_id}")
async def read_item(item_id: int | None, q: str | None = None):return {f"item_id={item_id} q={q}"}"""
查询参数
"""@app.get("/query/q1")
async def read_root(q: str = None):return {"message": f"q={q}"}@app.get("/query/q2")
async def read_root(q: str = Query(None, max_length=50, pattern=r'^\d+$')):return {"message": f"q={q}"}@app.get("/query/q3")
async def read_root(q: List[str] = Query(None, max_length=50)):# 多参数使用,如列表 http://127.0.0.1:8000/query/q3?q=123123&q=1231return {"message": f"q={q}"}"""Post相关"""@app.post("/post1", response_model=Body)
async def post_item(body: Body):print(body)return body"""添加Header头"""@app.get("/head")
async def read_root(q: List[str] = Query(None, max_length=50), user_agent: str = Header(None)):# 多参数使用,如列表 http://127.0.0.1:8080/query/q3?q=123123&q=1231return {"message": f"q={q} User-Agent=f{user_agent}"}"""获得Request"""@app.get("/request")
async def read_request(request: Request):"""此处便可以通过request获得Request对象"""return {"request": f"{request.method}"}if __name__ == '__main__':"""等效命令:reload是热部署,开发阶段直接修改代码生效uvicorn main:app --reload"""import uvicornuvicorn.run("main:app", port=8080, reload=True)

如果涉及多模块,则可使用Route

"""
路由的意义,在于大项目时,模块划分,而非单独只使用FastApi在一个文件中导致臃肿"""from fastapi import APIRouterroute_api = APIRouter()@route_api.get("/r1/get1")
async def get1():return {"method": "hello from route"}@route_api.get("/r1/get2")
async def get2(q: str | None = None):return {"method": f"hello {q} from route"}

可以直接在host后加docs路径,即可自动化生成api说明,如http://127.0.0.1:8080/docs,

http://www.dtcms.com/wzjs/35288.html

相关文章:

  • 1688免费货源网东莞营销网站建设优化
  • 如何建立内外网网站360营销推广
  • not found的网站合肥百度快速排名提升
  • 2017网站风格青岛百度推广优化怎么做的
  • 营销型网站制作培训多少钱seo综合查询是什么意思
  • 制作一个链接网站google store
  • 用ps做网站尺寸盐酸达泊西汀片是治疗什么的药物
  • 超轻粘土做动漫网站长沙网站seo分析
  • h5网站开发是什么意思b站推广费用一般多少
  • 网站源码编辑软件黄页88网站推广方案
  • 阿里云怎么做淘宝客网站曲靖seo建站
  • 开个做网站的公司深圳最好的外贸seo培训
  • 简述网站开发基本流程网络优化培训要多少钱
  • 西宁做网站的公司百度问问
  • 福州营销型网站建设价格2345网址导航用户中心
  • 郑州网站建设企业渠道推广费用咨询
  • 辽宁做网站临沂色度广告有限公司
  • 网站建设制作一个网站的费用排名
  • 做公司网站需要了解哪些东西百度关键词竞价排名
  • 手机wap网站制作营业推广怎么写
  • odoo网站建设百度推广技巧方法
  • 网站查询空间商手机百度网盘下载慢怎么解决
  • 怎么做网站广告古董优化设计答案六年级上册
  • 中小型网站建设郑州seo排名工具
  • 网盟推广图片郑州网站优化
  • 常宁市住房城乡建设委官方网站南宁seo推广公司
  • 玩具网站建设方案百度公司推广
  • 做网站需要具备的基础条件网络推广接单平台
  • 免费做网站公司ydwzjs产品质量推广营销语
  • flask 网站开发百度人工服务电话