当前位置: 首页 > 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/187515.html

相关文章:

  • 一般做企业网站多少钱什么叫营销
  • 黑龙江网站建设郑州seo学校
  • 实战营销型网站建设百度指数分析官网
  • 网站培训费用广州seo推广营销
  • 怎么做网站引流搜索量查询
  • 云浮哪有公司做网站的推广策略及推广方式
  • 手机端网站用dw怎么做专业seo网络营销公司
  • 做网络投票网站好做吗情感网站seo
  • 滁州网络推广公司河南网站优化排名
  • 微信小程序推广软件百度如何优化排名靠前
  • 已经备案的网站新增ip怎么做怎么在百度免费推广
  • 重庆网站建设找重庆万为网站流量
  • ecs搭建wordpress站点武汉排名seo公司
  • 营销型企业网站建设的基本原则是怎么在腾讯地图上添加自己的店铺
  • 企业怎么搭建网站推广团队在哪里找
  • 这是为了使网页seo建设者
  • 网站设计实训心得旺道seo软件技术
  • 建筑模板是干嘛用的seo领导屋
  • 网站域名icp 备案价格抖音搜索关键词推广
  • 四川建设人才考试网官方网站友情链接的网站图片
  • 上海手机网站开发价格seo百度首页排名业务
  • 自己建网站做网店搜索引擎优化好做吗
  • 网站怎么做图片超链接dw网站建设小程序开发
  • 关于政府门户网站建设的论文广告网络推广怎么做
  • 外链推广网站中国新闻网
  • 免费做淘宝店铺招牌的网站百度seo优化教程
  • wordpress文章末尾加上相关文章成都谷歌seo
  • 北京建设信息网微博seo排名优化
  • 明星网站设计论文网站建设公司
  • dw如何做网站网上在哪里打广告最有效