From ae7aa63e2a4a5ab31dd92669ee7385cc5e8af3a7 Mon Sep 17 00:00:00 2001 From: lan-air Date: Sun, 11 Dec 2022 18:14:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=20aiosqlite=20=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E6=95=B0=E6=8D=AE=E5=BA=93=E9=A9=B1=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- database.py | 6 +++++- main.py | 8 +++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e7e483a..8929ac1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ __pycache__/ # Created by .ignore support plugin (hsz.mobi) ### Python template # Byte-compiled / optimized / DLL files -database.db +databasea.db # C extensions *.so *.env diff --git a/database.py b/database.py index 5770694..b27f9e1 100644 --- a/database.py +++ b/database.py @@ -1,3 +1,4 @@ +import asyncio import datetime from sqlalchemy import Boolean, Column, Integer, String, DateTime @@ -9,7 +10,10 @@ engine = create_async_engine("sqlite+aiosqlite:///database.db") Base = declarative_base() -Base.metadata.create_all(bind=engine) + +async def init_models(): + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) async def get_session(): diff --git a/main.py b/main.py index d135672..72f0405 100644 --- a/main.py +++ b/main.py @@ -11,13 +11,19 @@ from starlette.staticfiles import StaticFiles from sqlalchemy import or_, select, update, delete from sqlalchemy.ext.asyncio.session import AsyncSession -from database import get_session, Codes +from database import get_session, Codes, init_models app = FastAPI() if not os.path.exists('./static'): os.makedirs('./static') app.mount("/static", StaticFiles(directory="static"), name="static") + +@app.on_event('startup') +async def startup(): + await init_models() + + ############################################ # 需要修改的参数 # 允许错误次数