Use lifespan events instead of @app.on_event annotation in sql example code

This commit is contained in:
dbejo 2025-04-02 18:45:17 +02:00
parent 1d434dec47
commit 04b336640c
12 changed files with 83 additions and 51 deletions

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import List, Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -27,12 +28,13 @@ def get_session():
yield session
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/")

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import List, Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -30,12 +31,13 @@ def get_session():
SessionDep = Annotated[Session, Depends(get_session)]
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/")

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import Annotated
from fastapi import Depends, FastAPI, HTTPException, Query
@ -29,12 +30,13 @@ def get_session():
SessionDep = Annotated[Session, Depends(get_session)]
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/")

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import Annotated, Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -29,12 +30,14 @@ def get_session():
SessionDep = Annotated[Session, Depends(get_session)]
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/")

View File

@ -1,3 +1,5 @@
from contextlib import asynccontextmanager
from fastapi import Depends, FastAPI, HTTPException, Query
from sqlmodel import Field, Session, SQLModel, create_engine, select
@ -25,12 +27,13 @@ def get_session():
yield session
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/")

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -27,12 +28,12 @@ def get_session():
yield session
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/")

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import List, Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -44,12 +45,13 @@ def get_session():
yield session
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/", response_model=HeroPublic)

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import List, Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -46,12 +47,15 @@ def get_session():
SessionDep = Annotated[Session, Depends(get_session)]
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/", response_model=HeroPublic)

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import Annotated
from fastapi import Depends, FastAPI, HTTPException, Query
@ -45,12 +46,15 @@ def get_session():
SessionDep = Annotated[Session, Depends(get_session)]
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/", response_model=HeroPublic)

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import Annotated, Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -45,12 +46,15 @@ def get_session():
SessionDep = Annotated[Session, Depends(get_session)]
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/", response_model=HeroPublic)

View File

@ -1,3 +1,5 @@
from contextlib import asynccontextmanager
from fastapi import Depends, FastAPI, HTTPException, Query
from sqlmodel import Field, Session, SQLModel, create_engine, select
@ -42,12 +44,13 @@ def get_session():
yield session
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/", response_model=HeroPublic)

View File

@ -1,3 +1,4 @@
from contextlib import asynccontextmanager
from typing import Union
from fastapi import Depends, FastAPI, HTTPException, Query
@ -44,12 +45,13 @@ def get_session():
yield session
app = FastAPI()
@app.on_event("startup")
def on_startup():
@asynccontextmanager
async def lifespan(app: FastAPI):
create_db_and_tables()
yield
app = FastAPI(lifespan=lifespan)
@app.post("/heroes/", response_model=HeroPublic)