python-web开发神器:FastAPI详细使用(简单易用)
文章目录
- 一、简介
- 1、官方文档
- 2、安装
- 3、运行部署
- 二、使用
- 1、helloworld
- 2、path参数解析
- 3、查询参数解析
- 4、获取body体
- 【重磅推荐!免费简单内网穿透神器!支持linux+windows】
一、简介
1、官方文档
FastAPI官网:https://fastapi.tiangolo.com/
官方文档地址:https://fastapi.tiangolo.com/learn/
官方文档的示例非常清晰明了,通过官方文档可以很容易的使用上手。
2、安装
# 安装默认的环境包
pip install "fastapi[standard]"
# 安装简单的环境包
pip install fastapi
3、运行部署
直接运行py文件是运行不了的,需要使用命令运行
# 以dev方式运行,修改代码会自动部署,但是不稳定
fastapi dev test1.py
# 用4个worker运行,默认生产部署,禁用自动部署
fastapi run --workers 4 main.py
# 指定端口
fastapi run --port 8080 main.py
默认http://127.0.0.1:8000
同时开启一个API文档:http://127.0.0.1:8000/docs
、http://127.0.0.1:8000/redoc
二、使用
1、helloworld
from fastapi import FastAPIapp = FastAPI()
# 可以post、delete等
@app.get("/")
async def root():return {"message": "Hello World"}
2、path参数解析
from fastapi import FastAPI
from enum import Enumapp = FastAPI()# 要注意定义的先后顺序
@app.get("/items/test")
async def read_item():return {"item_id": 123}# 注意path匹配规则,不要重复,如果重复会匹配第一个
# 获取path参数,可以指定具体参数类型 read_item(item_id: int):
@app.get("/items/{item_id}")
async def read_item(item_id):return {"item_id": item_id}# 可以使用枚举类型,path参数只能指定这几种类型
class ColorName(str, Enum):red = "red"green = "green"yellow = "yellow"@app.get("/colors/{color_name}")
async def get_model(color_name: ColorName):return {"color": color_name}
3、查询参数解析
from fastapi import FastAPIapp = FastAPI()fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]# http://127.0.0.1:8000/items/?skip=0&limit=10
@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):return fake_items_db[skip : skip + limit]
4、获取body体
from fastapi import FastAPI
from pydantic import BaseModelclass Item(BaseModel):name: strdescription: str | None = Noneprice: floattax: float | None = Noneapp = FastAPI()# post body体
@app.post("/items/")
async def create_item(item: Item):return item
【重磅推荐!免费简单内网穿透神器!支持linux+windows】
推荐内网穿透神器【cpolar】https://www.cpolar.com/
点击【免费注册】之后,输入自己的个人信息就可以注册一个账号啦!
本地web项目如何使用外网访问?教你轻松使用cpolar在windows搭建内网穿透
linux虚拟机部署的web项目如何使用外网访问?教你轻松使用cpolar在centos搭建内网穿透
linux虚拟机部署的MySQL如何使用外网访问?教你轻松使用cpolar在centos搭建内网穿透