完善 aiosqlite 异步数据库驱动

This commit is contained in:
lan-air
2022-12-11 18:14:41 +08:00
parent 9c0828f078
commit fece976378
3 changed files with 13 additions and 3 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ __pycache__/
# Created by .ignore support plugin (hsz.mobi) # Created by .ignore support plugin (hsz.mobi)
### Python template ### Python template
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
database.db databasea.db
# C extensions # C extensions
*.so *.so
*.env *.env
+5 -1
View File
@@ -1,3 +1,4 @@
import asyncio
import datetime import datetime
from sqlalchemy import Boolean, Column, Integer, String, 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 = 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(): async def get_session():
+7 -1
View File
@@ -11,13 +11,19 @@ from starlette.staticfiles import StaticFiles
from sqlalchemy import or_, select, update, delete from sqlalchemy import or_, select, update, delete
from sqlalchemy.ext.asyncio.session import AsyncSession from sqlalchemy.ext.asyncio.session import AsyncSession
from database import get_session, Codes from database import get_session, Codes, init_models
app = FastAPI() app = FastAPI()
if not os.path.exists('./static'): if not os.path.exists('./static'):
os.makedirs('./static') os.makedirs('./static')
app.mount("/static", StaticFiles(directory="static"), name="static") app.mount("/static", StaticFiles(directory="static"), name="static")
@app.on_event('startup')
async def startup():
await init_models()
############################################ ############################################
# 需要修改的参数 # 需要修改的参数
# 允许错误次数 # 允许错误次数