创建并运行一个最简单的fastapi应用
最简单的 FastAPI 文件可能像下面这样:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
将期复制到main.py文件中,运行实时服务器:
uvicorn main:app --reload
INFO: Will watch for changes in these directories: ['D:\\MyCode\\TestProject\\fastApiProject']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [12540] using WatchFiles
INFO: Started server process [20932]
INFO: Waiting for application startup.
INFO: Application startup complete.
nvicorn main:app --reload命令含义如下:
- main: main.py文件(一个python模块)
- app: 在main.py文件中通过app=FastAPI()创建的对象,app名称可以是任意符合规则的命名
- reload: 让服务器在更新代码后重新启动,仅在开发时使用该选项
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) 显示fastapi应用在本机中提供的访问地址,通过该url即可访问应用
创建一个路径操作
这里的路径是指url中从第一个/起的后半部分
所以在url中https://example.com/items/foo
路径会是:/items/foo
「路径」也通常被称为「端点」或「路由」。
在开发api时,路径是用来分离关注点和资源的主要手段
常见的HTTP请求方法
POST:创建数据
GET:读取数据。
PUT:更新数据。
DELETE:删除数据。
更少见的请求方法:
OPTIONS
HEAD
PATCH
TRACE
在HTTP协议中可以使用以上一种或多种方法与每个路径进行通信
定义一个路径操作装饰器
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/") 告诉 FastAPI 在它下方的函数负责处理如下访问请求:
- 请求路径为
/
- 使用
get
操作
@something 语法在 Python 中被称为「装饰器」。
像一顶漂亮的装饰帽一样,将它放在一个函数的上方(我猜测这个术语的命名就是这么来的)。
装饰器接收位于其下方的函数并且用它完成一些工作。
在我们的例子中,这个装饰器告诉 FastAPI 位于其下方的函数对应着路径 / 加上 get 操作。
它是一个「路径操作装饰器」。
其他的操作类似:
- @app.post()
- @app.put()
- @app.delete()
以及更少见的: - @app.options()
- @app.head()
- @app.patch()
- @app.trace()
定义路径操作函数
- 路径:是 /。
- 操作:是 get。
- 函数:是位于「装饰器」下方的函数(位于 @app.get("/") 下方)。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
这是一个 Python 函数。
每当 FastAPI 接收一个使用 GET 方法访问 URL「/」的请求时这个函数会被调用。
在这个例子中,它是一个 async
函数。也可以定义为常规函数而不使用async def
如果不知道两者区别可以查看并发 async / await
返回内容
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
可以返回一个dict、list、str、int一样的单个值
也可以返回Pydantic模型
还有需要其他将会自动转换为Json的对象和模型
标签:get,FastAPI,app,路径,step,fastapi,async,first From: https://www.cnblogs.com/T-Ajie/p/18596820以上内容均根据fastapi官方文档学习记录fastapi