FastAPI介绍

1.fastapi介绍

一个用于构建 API 的现代、快速(高性能)的web框架。 ​ 特点 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。 高效编码:提高功能开发速度约 200% 至 300%。 更少bug:减少约 40% 的人为(开发者)导致错误。 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。 简单:设计的易于使用和学习,阅读文档的时间更短。 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。 健壮:生产可用级别的代码。还有自动生成的交互式文档。

1.1安装

pip install fastapi
pip install "uvicorn[standard]"

1.2小案例

from fastapi import FastAPI
import uvicorn
app = FastAPI()
​
@app.get('/')
async def index():
    return 'ok'
​
​
@app.get('/test2')
async def test2():
    return 'oktest12'
​
if __name__ == "__main__":
    uvicorn.run(app="main:app", reload=True, debug=True,host="localhost",port=5001)
    
    
uvicorn main:app 命令含义如下:
​
main:main.py 文件(一个 Python "模块")。
​
app:在 main.py 文件中通过 app = FastAPI() 创建的对象。
​
--reload:让服务器在更新代码后重新启动。仅在开发时使用该选项。

1.3运行

python main.py

1.4查看文档

http://127.0.0.1:8000/docs

1.5返回json

from fastapi import FastAPI
from fastapi.responses import JSONResponse
import uvicorn
app = FastAPI()
​
​
@app.api_route('/test',methods=['GET','POST','PUT'])
def test():
    return JSONResponse({"code":200})
​
if __name__ == "__main__":
    uvicorn.run(app="main:app", reload=True, debug=True,host="localhost",port=5002)

2.sqlalchemy

1. 安装 SQLAlchemy

pip install sqlalchemy

2.SQLAlchemy 连接 MySQL

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
​
# 数据库连接配置
SQLALCHEMY_DATABASE_URI = (
    "mysql+pymysql://root:123456@localhost/fastapi_db?charset=utf8mb4"
    #                用户:密码@服务器/数据库?参数
)
​
# 创建数据库引擎
engine = create_engine(SQLALCHEMY_DATABASE_URI)
# 创建数据库会话
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 声明基类
Base = declarative_base()

<think>好的,我现在需要给用户介绍一下FastAPI。首先,我应该回忆一下FastAPI的基本信息,比如它是一个用于构建API的现代Python框架,基于标准Python类型提示,还有它的一些主要特性,比如高性能、易用性、自动生成文档等。 接下来,我得组织回答的结构,确保符合用户的要求,结构清晰,分步骤说明。可能需要分几个部分来介绍,比如概述、主要特性、优点、使用场景以及简单示例。 用户提到系统级指令,需要确保数学表达式和公式的正确使用,不过在这个问题里可能涉及不多,但如果有提到性能数据之类的,可能需要用行内公式。比如提到性能与NodeJS或Go相当,可以写成$高性能$,不过可能不太必要,但要注意用户的要求。 需要检查是否所有行内数学表达式都用$...$,独立公式用$$...$$。但FastAPI介绍可能不涉及太多数学内容,但如果有版本号或类似数值,可能需要确认是否需要特别处理,不过应该不用。可能用户只是提醒,但在这个回答中可能用不上,但要注意其他部分。 然后要确保使用中文回答,语言流畅,帮助用户逐步了解FastAPI。可能需要先定义FastAPI,再讲特性,再讲优点,然后适用场景,最后一个简单例子。 需要验证提到的特性是否正确,比如基于Starlette和Pydantic,自动生成交互式API文档,支持异步等。还要注意是否有错误的信息,比如是否真的支持OpenAPI和JSON Schema,是否正确。 例子部分需要确保代码正确,比如创建一个简单的FastAPI应用,定义端点,运行命令等。虽然用户不需要运行代码,但作为介绍,需要简明展示其易用性。 另外,用户可能关心与其他框架(如Flask、Django)的比较,是否需要提及?但用户没有特别要求,可能简要提到高性能和易用性作为优势即可。 还要注意使用术语的准确性,比如ASGI服务器,异步支持,数据验证,依赖注入等术语是否正确应用。 最后总结FastAPI的适用性,比如适合快速开发高性能API,微服务,或需要自动文档的项目等。 可能还需要检查是否有遗漏的重要特性,比如安全性(OAuth2、JWT),自动数据模型序列化,测试客户端等。 现在开始组织内容,确保每个部分清晰,分点说明,并且符合用户的格式要求。</think>FastAPI 是一个用于构建 API 的现代、高性能 Python Web 框架,尤其适合开发需要高效率和清晰代码结构的后端服务。以下从多个方面逐步介绍其核心特性和优势: --- ### 1. **核心特性** - **基于标准类型提示** 使用 Python 3.6+ 的类型提示(Type Hints)声明请求参数和响应模型,框架自动处理数据验证和序列化。 ```python from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str price: float @app.post("/items/") def create_item(item: Item): return item ``` - **高性能** 底层基于 **Starlette**(高性能 ASGI 框架)和 **Pydantic**(数据验证库),性能与 NodeJS 和 Go 的框架相当。 - **自动生成 API 文档** 内置支持 OpenAPI 和 JSON Schema,自动生成交互式文档(Swagger UI 和 ReDoc),无需手动编写。 ![Swagger UI 示例](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) - **异步支持** 全面支持 `async/await` 语法,适合高并发场景(如处理大量 I/O 操作)。 --- ### 2. **主要优势** - **开发效率高** 代码简洁,减少重复逻辑(如通过类型提示自动验证数据)。 - **强类型安全** 运行时数据校验避免常见错误(如字段类型不匹配)。 - **标准化兼容** 遵循 OpenAPI、JSON Schema 等标准,方便与其他工具集成。 --- ### 3. **适用场景** - 构建 RESTful API 或微服务 - 需要自动生成 API 文档的项目 - 高并发、低延迟的后端服务 - 快速原型开发 --- ### 4. **简单示例** ```python from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} ``` 运行服务: ```bash uvicorn main:app --reload ``` 访问 `http://localhost:8000/docs` 即可查看自动生成的文档。 --- ### 5. **与其他框架对比** | 特性 | FastAPI | Flask | Django | |---------------------|-----------------|-----------------|-----------------| | 异步支持 | ✅ | ❌(需扩展) | ❌(需扩展) | | 自动文档 | ✅ | ❌(需扩展) | ❌(需扩展) | | 数据验证 | ✅(内置) | ❌(需扩展) | ❌(需扩展) | | 性能 | ⚡️ 高 | 🟡 中等 | 🟡 中等 | --- ### 6. **学习资源** - 官方文档:[https://fastapi.tiangolo.com](https://fastapi.tiangolo.com) - GitHub 仓库:[https://github.com/tiangolo/fastapi](https://github.com/tiangolo/fastapi) 通过上述特性,FastAPI 成为现代 Python Web 开发中构建高效、可靠 API 的首选框架之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值