有没有一些用 fastapi 管理静态文件的好方法?我目前正在尝试在 fastapi 中创建一个更大的应用程序,并且必须为每个路由器创建多个这样的文件夹:/。
前段时间我也有同样的问题......我的文件结构就像
main.py # The main file which contains the fastapi instance ) src -- folders in here with `__init__.py` in src folder and each folder src contains # It would be like main.py src - __init__.py - folder1 - __init__.py - folder1.py
然后在 main.py 文件中
from src.folder1 import folder1 as folder1_main ... # In the end of code i add app.include_router(folder1_main.router)
因此,对于静态文件,只需在 src 文件夹中创建一个名为 staticserve 的文件夹,然后在其中放置类似的内容(尽管不要添加为路由器)
def templateit(appobj): dir_path = os.path.dirname(os.path.realpath(__file__)) appobj.mount("/static", StaticFiles(directory=f"{dir_path}/static"), name="static") templates = Jinja2Templates(directory=f"{dir_path}/templates") return templates
现在,当在 main.py 或 src 的其他文件夹中使用模板时,只需从那里导入这个函数并
return cur.TemplateResponse( "index.html", { "request": request, }, status_code=200 )
注意:在 staticserve 目录中创建一个名为 static 和模板的文件夹…
此外,有时它会给端点等问题带来问题/a/b,但可以正常工作/a..
/a/b
/a