[英]How to initialize a Postgresql database in a Flask app with SQLAlchemy
[英]How to initialize database with some data when app startup? (fastapi, sqlalchemy)
我是 fastapi 和 sqlalchemy 的新手。我正在尝试在启动我的应用程序时初始化一些数据。 这是我的想法:
@app.on_event("startup")
async def startup_event():
with SessionLocal() as session:
country_dataframe = pd.read_csv('./initialize_data/country.csv')
for index, row in country_dataframe.iterrows():
session.add(models.Country(row.to_dict()))
session.commit()
但是当我启动它时我无法获取 db session,它显示错误代码:
错误:追溯(最近一次调用最后一次):文件“C:\Users\newia\Miniconda3\envs\fastapi\lib\site-packages\starlette\routing.py”,第 540 行,在 self.lifespan_context 中项目的生命周期异步(app): 文件“C:\Users\newia\Miniconda3\envs\fastapi\lib\site-packages\starlette\routing.py”,第 481 行,在 default_lifespan 等待 self.startup() 文件“C:\Users\ newia\Miniconda3\envs\fastapi\lib\site-packages\starlette\routing.py”,第 516 行,在启动时等待处理程序()文件“D:\Software Projects\PythonProjects\LanguageExchange\app.py”,第 27 行,在 startup_event 中,SessionLocal() 为 session: AttributeError: enter
错误:应用程序启动失败。 退出。
有没有设计模式可以做到这一点? 任何建议将不胜感激。
您可以查看此启动器快速 API模板。 我认为您对init_db.py部分感兴趣
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.