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

fastapi python项目构建 路由设置

FastAPI 是一个现代、快速(高性能)的 Python Web 框架,专门用于构建 API。它结合了 Python 类型提示的强大功能和异步编程的支持。

核心特性

1. 高性能

  • 基于 Starlette(Web 框架)和 Pydantic(数据验证)

  • 性能可与 NodeJS 和 Go 相媲美

  • 支持异步/等待语法

2. 类型安全

  • 使用 Python 类型提示

  • 在开发时提供更好的编辑器支持

3. 路由

  • 支持根据业务含义来接口分配到不同的文件当中

  • 清晰的业务逻辑

总启动文件:

import argparse
import asyncio
import logging
import os
import signal
import sysimport uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddlewarefrom src.config.log_config import setup_logging
from src.settings import settingssetup_logging()logger = logging.getLogger(__name__)if os.name == "nt":logger.info("Setting Windows event loop policy for asyncio")asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())app = FastAPI(title="EnerFlow API",description="API for Ener",version="0.1.0",
)
# 添加跨域 和 访问限制
app.add_middleware(CORSMiddleware,allow_credentials=True,allow_methods=["GET", "POST", "OPTIONS"],  # Use the configured list of methodsallow_headers=["*"],  # Now allow all headers, but can be restricted further
)

# 载入路由
from src.server.yourapi import router as based_router app.include_router(based_router)
# 载入路由
if settings.product_tier == "p2":from src.vanced_agents.api import router as vanced_routerapp.include_router(vanced_router)if __name__ == "__main__":# Parse command line argumentsparser = argparse.ArgumentParser(description="Run the EnerFlow API server")parser.add_argument("--reload",action="store_true",help="Enable auto-reload (default: True except on Windows)",)parser.add_argument("--host",type=str,default="localhost",help="Host to bind the server to (default: localhost)",)parser.add_argument("--port",type=int,default=settings.server_port,help="Port to bind the server to (default: 8000)",)parser.add_argument("--log-level",type=str,default="info",choices=["debug", "info", "warning", "error", "critical"],help="Log level (default: info)",)args = parser.parse_args()# Determine reload settingreload = Falseif args.reload:reload = Truetry:logger.info(f"Starting EnerFlow API server on {args.host}:{args.port}")uvicorn.run("server:app",host=args.host,port=args.port,reload=reload,log_level=args.log_level,)except Exception as e:logger.error(f"Failed to start server: {str(e)}")sys.exit(1)

业务文件1:

# routes/users.py
from fastapi import APIRouterrouter = APIRouter(prefix="/users", tags=["users"])@router.get("/")
def get_users(): ...@router.post("/")
def create_user(): ...

业务文件2:

# routes/products.py
from fastapi import APIRouterrouter = APIRouter(prefix="/products", tags=["products"])@router.get("/")
def get_products(): ...@router.post("/")
def create_product(): ...

 

http://www.jsqmd.com/news/53982/

相关文章:

  • 2025 年 11 月企业管理咨询公司十强权威推荐榜:战略规划与组织优化实力派首选,助力企业高效成长与持续领先
  • 2025年川渝黔实用时尚西餐料理培训哪家好?十大靠谱机构推荐
  • ReentrantLock 的典型使用场景和实现方法
  • 2025 年 11 月制造业降本增效咨询公司权威推荐榜:精益生产与成本优化专家团队深度解析及服务优势全景解析
  • 无源探头与高压探头技术对比分析
  • 数字马力笔试
  • 2025年上海离婚诉讼律师推荐排行榜,哪个好?哪个靠谱?选哪个?
  • 直击提分痛点!2025年11月贝赛思考试培训核心机构深度评测,封闭班首选推荐
  • 2025留学中介南京哪家好
  • 2025 年 11 月管理咨询公司权威推荐榜:战略规划与组织优化口碑优选,专业服务助力企业高效成长
  • Postman接口测试教程(完整版) - 指南
  • 开源项目观察8月报
  • jetson/ubuntu22.04系统安装ROS2
  • 2025年上海离婚谈判律师推荐排行榜,哪个好?哪个靠谱?选哪个?
  • 2025年双梁龙门吊厂家权威推荐榜单:10吨龙门吊‌/港口龙门吊‌/门式起重机源头厂家精选
  • 为你的STM32毕设项目加点料:AI智能风扇智能温控与风扇调节系统
  • ReentrantReadWriteLock的使用方法和使用场景
  • 2025 年 11 月中国十大咨询公司权威推荐榜:战略咨询,管理咨询,财务咨询,人力资源咨询,品牌咨询,专业实力与行业口碑深度解析
  • 2025年公路液压打桩机供货厂家权威推荐榜单:高速护栏立柱打桩机/马路护栏打桩机/道路打桩机源头厂家精选
  • 2025年重庆环境好的西点烘焙学校排行榜,设备先进口碑好的机
  • 2025年上海婚姻律所推荐排行榜,哪家好?哪家靠谱?选哪家?
  • 2025年北京离婚诉讼律师推荐排行榜,哪个好?哪个靠谱?选哪个?
  • 抗皱好的护护肤品年度更新:深纹改善率成为决定排名的关键指标
  • 2025年上海离婚房产律师推荐排行榜,哪个好?哪个靠谱?选哪个?
  • 2025年11月北京SAT备考指南:口碑辅导机构及封闭班攻略
  • IoT技术在产线实践中的应用 - 详解
  • Spring AI集成MCP Client
  • 2025 年 11 月管理咨询公司权威推荐榜:战略规划与组织变革领域十大专业机构深度解析
  • 2025英国留学中介机构
  • 精华液哪个牌子最好用?紧致提拉、美白亮肤、屏障修护全解析