restapi_key / app /main.py
FEATZAFF's picture
Upload 31 files
cce1e0e verified
Raw
History Blame Contribute Delete
2.78 kB
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
import os
from app.database import engine
from app.models.item import Item
import app.routes.item as item_routes
# Create tables in the database
from app.database import Base
Base.metadata.create_all(bind=engine)
# Initialize FastAPI app
app = FastAPI(title="FastAPI CRUD App")
# Mount static files
app.mount("/static", StaticFiles(directory="app/static"), name="static")
# Set up templates
templates = Jinja2Templates(directory="app/templates")
# Include routers
app.include_router(item_routes.router)
# Root endpoint
@app.get("/", response_class=HTMLResponse)
async def read_root(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
# Run with: uvicorn app.main:app --reload
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)
"""
# IGNORE THE FOLLOWING SECTION
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
import os
import sys
import importlib
from app.database import engine
from app.models.item import Item
# Create tables in the database
from app.database import Base
Base.metadata.create_all(bind=engine)
# Initialize FastAPI app
app = FastAPI(title="FastAPI CRUD App")
# Mount static files
app.mount("/static", StaticFiles(directory="app/static"), name="static")
# Set up templates
templates = Jinja2Templates(directory="app/templates")
# TEMP: Use the solutions for testing
# Import CRUD operations from solutions directory
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from solutions.crud.create import create_item
from solutions.crud.read import get_item, get_items
from solutions.crud.update import update_item
from solutions.crud.delete import delete_item
# Create a temporary crud module that uses solutions
class TempCrud:
create_item = create_item
get_item = get_item
get_items = get_items
update_item = update_item
delete_item = delete_item
# Import the router
import app.routes.item as item_routes
# Replace the crud import in the routes with our temporary one
item_routes.crud = TempCrud
# Include routers
app.include_router(item_routes.router)
# Root endpoint
@app.get("/", response_class=HTMLResponse)
async def read_root(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
# Run with: uvicorn app.main:app --reload
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)
"""