48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from contextlib import asynccontextmanager
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.security import OAuth2PasswordBearer
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from fastapi_pagination import add_pagination
|
|
|
|
|
|
from db import create_db_and_tables
|
|
from user import user_router, auth_router, create_admin_account
|
|
from account.routes import router as account_router
|
|
from category.routes import router as category_router
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
create_db_and_tables()
|
|
create_admin_account()
|
|
yield
|
|
#do something before end
|
|
|
|
app = FastAPI(lifespan=lifespan)
|
|
add_pagination(app)
|
|
|
|
origins = [
|
|
"http://localhost:8000",
|
|
"http://localhost:5173",
|
|
]
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=origins,
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.include_router(auth_router, prefix="/auth", tags=["auth"], )
|
|
app.include_router(user_router, prefix="/users", tags=["users"])
|
|
app.include_router(account_router, prefix="/accounts", tags=["accounts"])
|
|
app.include_router(category_router, prefix="/categories", tags=["categories"])
|
|
|
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
|
|
if __name__ == '__main__':
|
|
import uvicorn
|
|
uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True)
|