0

0

Python如何搭建简单Web应用_FastAPI项目结构讲解【指导】

舞夢輝影

舞夢輝影

发布时间:2025-12-19 21:05:09

|

442人浏览过

|

来源于php中文网

原创

fastapi项目应结构清晰、启动快、易扩展:main.py仅作入口和路由注册;api/按版本和功能拆分路由;schemas/与models/分离校验与orm模型;config.py和deps.py统一管理配置与依赖。

python如何搭建简单web应用_fastapi项目结构讲解【指导】

用 FastAPI 搭建简单 Web 应用,关键不是堆功能,而是结构清晰、启动快、后续好扩展。下面直接说一个够用又不臃肿的项目结构,适合个人小项目或快速验证想法。

核心文件:main.py 是入口

整个应用从这里启动,只放路由注册和应用实例创建,不写业务逻辑。

  • FastAPI() 创建 app 实例
  • @app.get("/") 这类装饰器挂接口,但只做转发(比如调用 api/v1/items.py 里的函数)
  • 加一句 uvicorn.run("main:app", reload=True) 方便本地调试

按模块拆路由:api/ 目录分版本和功能

把接口按业务或资源归类,避免所有路由挤在 main.py 里。

  • 例如:api/v1/items.py 处理商品相关接口,api/v1/users.py 处理用户相关
  • 每个文件里用 APIRouter() 定义子路由,再在 main.py 中 include 进来
  • 路径自动带前缀,比如 router = APIRouter(prefix="/items"),那么 @router.get("/list") 对应的就是 /v1/items/list

数据模型和校验:schemas/ 和 models/ 分开

FastAPI 靠 Pydantic 做请求/响应校验,建议把定义收在 schemas/;如果用 ORM(如 SQLAlchemy),实体类放 models/

GPTPLUS
GPTPLUS

GPTPLUS, 由GPT-4和GPT-3.5支持,为您的写作、翻译、代码分析和问答需求提供最准确、有效的AI反馈。

下载

立即学习Python免费学习笔记(深入)”;

  • schemas/item.py:定义输入(ItemCreate)、输出(ItemOut)、更新(ItemUpdate)等 Pydantic 模型
  • models/item.py:对应数据库表的 ORM 类(字段可和 schema 不完全一致,比如加 id、created_at)
  • 接口函数里接收 schema 类型参数,内部转成 model 存库,返回时再转回 schema —— 清晰隔离关注点

配置和依赖:config.py + deps.py 统一管理

数据库连接、密钥、环境变量这些别散落在各处。

  • config.py:用 pydantic.BaseSettings 读取 .env 或环境变量,统一提供配置对象
  • deps.py:放 Depends() 用的函数,比如 get_db() 获取数据库会话,get_current_user() 做认证
  • 接口里直接写 db: Session = Depends(get_db),不用每次手动初始化

基本上就这些。不需要一上来就上 Docker、Celery、RBAC —— 先跑通 /hello,再加 /items,再连数据库,结构自然就长出来了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API

Python FastAPI 异步开发利用 async/await 关键字,通过定义异步视图函数、使用异步数据库库 (如 databases)、异步 HTTP 客户端 (如 httpx),并结合后台任务队列(如 Celery)和异步依赖项,实现高效的 I/O 密集型 API,显著提升吞吐量和响应速度,尤其适用于处理数据库查询、网络请求等耗时操作,无需阻塞主线程。

28

2025.12.22

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

251

2026.02.06

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

334

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

774

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

97

2025.08.19

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1825

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

594

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2343

2025.12.29

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

4

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.8万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号