news 2026/3/1 2:03:53

11 - 使用FastAPI开发Web应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
11 - 使用FastAPI开发Web应用

Python Web 框架的使用率仍然是 Flask、Django 和 FastAPI 之间的三强之争。所有其他框架加起来只能勉强排在第三位。下面对这三个主流框架做下比较:

  • Djanggo
    • 使用比率: 39%
    • 系统特点:全栈框架:内置 ORM、模板引擎、表单处理、用户认证等功能;开箱即用:适合快速开发复杂的 Web 应用;社区强大:有丰富的第三方库和插件。
    • 系统性能:中等。由于功能丰富,性能略低于轻量级框架,但足够应对大多数场景。
    • 适用场景:需要快速开发的全栈应用如内容管理系统(CMS)、社交网络、电子商务网站等。
  • Flask
    • 使用比率:36%
    • 系统特点:微框架:轻量级,核心功能简单,易于扩展;灵活:可以根据需求选择插件和库;学习曲线低:适合初学者和小型项目。
    • 系统性能:较高:由于轻量级设计,性能优于 Django。
    • 适用场景:小型 Web 应用、API 服务、原型开发。
  • FastAPI
    • 使用比率:25%
    • 系统特点:高性能:基于 Starlette 和 Pydantic,性能接近 Node.js 和 Go;异步支持:原生支持异步编程;自动文档:自动生成 OpenAPI 和 Swagger 文档。
    • 系统性能:极高:是目前性能最好的 Python Web 框架之一。
    • 适用场景:高性能 API 服务、微服务、实时应用。

目前纯粹的前端框架有很多如vueangularReact等,笔者不建议使用Python做web界面开发,可以使用Python开发人工智能后端后通过restful API发布接口,供第三方应用调用即可。

下面逐个介绍这几个框架并提供简单的web开发应用,只做抛砖引玉的作用,不做详细的引申,感兴趣的同学可以针对自己感兴趣的框架做进一步的学习。最后我们来了解FastAPI

在现代 Web 开发中,API 是前后端分离架构的核心。FastAPI 凭借其高性能、简洁的语法和自动文档生成功能,成为 Python 开发者的首选框架。FastAPI是一个用于构建API的现代、快速(高性能)的web框架,使用Python 3.8+并基于标准的Python类型提示。

核心特点

  • 基于 Starlette 和 Pydantic:提供异步支持和严格的数据验证。
  • 自动生成 API 文档:内置 Swagger UI 和 ReDoc,开发者无需手动维护文档。
  • 类型提示(Type Hints):利用 Python 的类型系统实现输入参数验证和代码提示。
  • 高效编码:提高功能开发速度约 200% 至 300%。
  • 更少 bug:减少约 40% 的人为(开发者)导致错误。
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。
  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
  • 健壮:生产可用级别的代码。还有自动生成的交互式文档。
  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为Swagger) 和 JSON Schema。

技术优势

特性说明
高性能异步处理能力(ASGI)支持高并发,性能媲美 Node.js 和 Go。
开发效率高通过类型提示和自动文档生成,减少代码冗余和调试时间。
生态完善可无缝集成 SQLAlchemy、OAuth2、JWT 等常用库。

依赖安装

主意!

fastapi有版本要求,需要的Python版本至少是Python 3.8

安装fastapi
# 使用pip安装 pip install fastapi
安装ASGI服务器

ASGI是异步网关协议接口,一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTP,HTTP2WebSocket

pip install uvicorn[standard]

Uvicorn是一个基于ASGI(Asynchronous Server Gateway Interface)的异步Web服务器,用于运行异步Python web应用程序。它是由编写FastAPI框架的开发者设计的,旨在提供高性能和低延迟的Web服务;

开发第一个应用

首先,使用Python包管理工具如proptry或者uv创建一个新的工程:python-demo。

第一个文件

在新建的工程目录下新建一个python文件:main.py。如果创建工程时已经生成,则打开即可。

# main.py from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
启动服务
# 在Terminal中输入: # 语法:uvicorn 文件的相对路径:实例名 --reload # reload:表示热启动,后端代码改变时,前端页面也会随之改变 PS:>uvicorn main:app --reload INFO: Will watch for changes in these directories: ['E:\\test\\project\\fastapi'] INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [19856] using statreload INFO: Started server process [7500] INFO: Waiting for application startup. INFO: Application startup complete.

启动成功后,打开浏览器,输入:http://127.0.0.1:8000/,即可看到输入的信息:

{"message": "Hello World"}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/25 22:11:48

Windows ISO补丁集成终极指南:自动化脚本完整教程

Windows ISO补丁集成终极指南:自动化脚本完整教程 【免费下载链接】Win_ISO_Patching_Scripts Win_ISO_Patching_Scripts 项目地址: https://gitcode.com/gh_mirrors/wi/Win_ISO_Patching_Scripts 想要轻松为Windows ISO镜像集成最新补丁?Win_ISO…

作者头像 李华
网站建设 2026/2/26 23:37:15

【数字人动作流畅度提升秘籍】:从捕捉到渲染的7个性能优化点

第一章:数字人动作流畅度的技术演进数字人作为虚拟现实、游戏和人工智能交互的重要载体,其动作的自然与流畅程度直接影响用户体验。随着图形学、深度学习与运动捕捉技术的发展,数字人动作生成已从早期的关键帧动画逐步演进为基于物理模拟与神…

作者头像 李华
网站建设 2026/2/23 1:00:29

Obsidian Templater插件终极指南:从零到完全掌握

Obsidian Templater插件终极指南:从零到完全掌握 【免费下载链接】Templater A template plugin for obsidian 项目地址: https://gitcode.com/gh_mirrors/te/Templater 你是否厌倦了Obsidian中那些千篇一律的静态模板?想要让笔记模板拥有"灵…

作者头像 李华
网站建设 2026/2/22 17:13:54

如何用7步完成MCP AI-102高可信度测试?一线专家亲授实战框架

第一章:MCP AI-102测试的核心挑战与目标 在人工智能工程实践中,MCP AI-102测试作为模型能力验证的关键环节,旨在评估系统在真实场景下的推理准确性、响应延迟与多模态处理能力。该测试不仅关注模型输出的正确性,更强调其在复杂输入…

作者头像 李华
网站建设 2026/2/21 1:53:20

环境监测Agent数据融合陷阱(90%工程师都忽略的3个致命问题)

第一章:环境监测Agent数据融合的核心挑战在构建分布式环境监测系统时,多个Agent采集的数据需进行有效融合以提升感知精度与系统鲁棒性。然而,数据融合过程面临诸多技术难题,尤其是在异构数据源整合、实时性保障与一致性维护方面。…

作者头像 李华
网站建设 2026/2/24 20:16:11

【紧急通知】MCP量子认证成绩即将发布!你必须提前准备的4项操作

第一章:MCP 量子认证成绩查询概述 MCP(Microsoft Certified Professional)量子认证是微软针对前沿计算技术推出的专业资格认证,涵盖量子算法、量子编程与量子系统集成等核心领域。随着该认证影响力的扩大,考生对成绩查…

作者头像 李华