Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit de86a2e

Browse files
committed
generated file: main.py
1 parent bce1035 commit de86a2e

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

‎main.py‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import os
2+
from typing import Optional
3+
from fastapi import FastAPI, Depends, HTTPException, status
4+
from fastapi.middleware.cors import CORSMiddleware
5+
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
6+
from sqlalchemy.orm import Session
7+
from sqlalchemy import create_engine
8+
from sqlalchemy.ext.declarative import declarative_base
9+
from sqlalchemy.orm import sessionmaker
10+
import models
11+
import schemas
12+
from routers import auth, api
13+
from utils.auth_utils import create_access_token
14+
import bcrypt
15+
import jwt
16+
from dotenv import load_dotenv
17+
18+
# Initialize FastAPI application
19+
app = FastAPI()
20+
21+
# Load environment variables
22+
load_dotenv()
23+
DATABASE_URL = os.getenv("DATABASE_URL")
24+
SECRET_KEY = os.getenv("JWT_SECRET_KEY")
25+
26+
# Add CORS middleware for development
27+
app.add_middleware(
28+
CORSMiddleware,
29+
allow_origins=["*"],
30+
allow_credentials=True,
31+
allow_methods=["*"],
32+
allow_headers=["*"],
33+
)
34+
35+
# Database setup
36+
engine = create_engine(DATABASE_URL)
37+
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
38+
Base = declarative_base()
39+
40+
# Include routers for authentication and API calls
41+
app.include_router(auth.router)
42+
app.include_router(api.router)
43+
44+
# Database dependency function
45+
def get_db():
46+
db = SessionLocal()
47+
try:
48+
yield db
49+
finally:
50+
db.close()
51+
52+
# Startup event for creating tables
53+
@app.on_event("startup")
54+
async def startup():
55+
Base.metadata.create_all(bind=engine)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /