下载安装
后续的案例教程,我选择的是标准下载:
bash
# 标准下载
pip install fastapi==0.103.1
# 全量下载
pip install fastapi[all]==0.103.1
全量下载,就是比标准下载额外多下载了一些包,比如,全量下载会同时下载jinja2。
下面分别是Windows系统中,标准下载和全量下载的模块。
标准下载
bash
(e1) D:\mydata\tmp\dist>pip list
Package Version
----------------- -------
annotated-types 0.5.0
anyio 3.7.1
exceptiongroup 1.1.3
fastapi 0.103.1
idna 3.4
pip 23.2.1
pydantic 2.4.2
pydantic_core 2.10.1
setuptools 68.1.2
sniffio 1.3.0
starlette 0.27.0
typing_extensions 4.8.0
wheel 0.41.2
全量下载
bash
(e2) D:\mydata\tmp\dist>pip list
Package Version
-------------------- -----------
annotated-types 0.5.0
anyio 3.7.1
certifi 2023.7.22
click 8.1.7
colorama 0.4.6
dnspython 2.4.2
email-validator 2.0.0.post2
exceptiongroup 1.1.3
fastapi 0.103.1
h11 0.14.0
httpcore 0.18.0
httptools 0.6.0
httpx 0.25.0
idna 3.4
itsdangerous 2.1.2
Jinja2 3.1.2
MarkupSafe 2.1.3
orjson 3.9.7
pip 23.2.1
pydantic 2.4.2
pydantic_core 2.10.1
pydantic-extra-types 2.1.0
pydantic-settings 2.0.3
python-dotenv 1.0.0
python-multipart 0.0.6
PyYAML 6.0.1
setuptools 68.1.2
sniffio 1.3.0
starlette 0.27.0
typing_extensions 4.8.0
ujson 5.8.0
uvicorn 0.23.2
watchfiles 0.20.0
websockets 11.0.3
wheel 0.41.2
启动fastapi程序的三种方式
我的项目结构 是这样的:
bash
D:\code\myfastapi # 项目根目录
└── manage.py # 项目主文件,也是入口文件
通过命令行启动
manage.py文件内容长这样:
python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/hello/{name}")
async def say_hello(name: str):
return {"message": f"Hello {name}"}
然后,我们打开终端,到项目根目录下,也就是manage.py文件的同级目录下,执行终端命令启动项目:
bash
(fastapi) D:\code\myfastapi>uvicorn manage:app --host="127.0.0.1" --port=5200 --reload
# uvicorn 是启动命令
# manage:app 表示启动manage.py文件中的app实例
# --host和--port是指定IP和端口
# --reload是代码更改后自动重载
通过uvicorn配置在文件中启动
如果你不想在命令行写启动命令,我们可以调整manage.py中的代码,使其直接运行文件就能启动项目。
python
import uvicorn # 首先要导入uvicorn模块
from os import cpu_count
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/hello/{name}")
async def say_hello(name: str):
return {"message": f"Hello {name}"}
if __name__ == '__main__':
# 通过run方法启动项目
uvicorn.run(
'manage:app',
host='127.0.0.1',
port=5200,
reload=True,
# workers=cpu_count() # 可以指定启动时,使用的进程数量,cpu_count用来获取当前计算机的逻辑核心数
)
然后,你就可以右键运行这个项目了。
pycharm配置fastapi启动
如果你的ide是pycharm专业版,这里也可以配置fastapi的启动配置。
首先manage.py中用到的代码:
python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/hello/{name}")
async def say_hello(name: str):
return {"message": f"Hello {name}"}
1. 打开配置窗口
2. 进行配置
3. 启动
查询参数和路径参数
docs和redocs
�