api - 有没有办法在后端服务器启动时直接在 fastapi 中调用 api?
问题描述
所以我有一个 API 每小时更新一次数据库中的天气数据(使用 repeat_every 装饰器)。有没有办法在后端服务器启动并运行时自动调用此 API 而不是手动调用它?
解决方案
就在这里。您可以定义在应用程序启动和关闭之前需要执行的事件处理程序 (函数) 。
您可以使用@app.on_event("startup" | "shutdown")
@app.on_event("startup")
async def startup():
do something...
@app.on_event("shutdown")
async def shutdown():
do something...
如果您遇到循环导入错误,请将您的 api 创建为路由器,而不是从主文件导入。
例子
from fastapi import APIRouter
router = APIRouter()
@router.on_event("startup")
async def startup():
do something...
从你的主文件
from path_to_your_api import router
app.include_router(router)
推荐阅读
- python-3.x - 如何遍历pymongo数据?
- java - Spring Security:登录后页面不重定向
- django - 如何过滤图像?
- azure-ad-b2c - 用于创建 AzureADB2C 的 Azure Fluent Api
- r - 有没有办法在不使下游目标无效的情况下将 file_in 输入的绝对路径更改为 drake?
- javascript - Laravel newly added javascript files give an error net::ERR_ABORTED 404 (Not Found)
- c# - 使用 NLOG 时无法解析服务时缺少详细信息
- c++ - (C++) 异常未处理 - 无效向量
下标 - node.js - 如何使用 express 将我的 mongoDB 查询显示为 json?
- r - 如何使用 barplot() 手动分配沿 x 轴的条形位置?