簡體   English   中英

如何在應用程序啟動時用一些數據初始化數據庫? (fastapi, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM