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() + + ############################################ # 需要修改的参数 # 允许错误次数