from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from passlib.context import CryptContext from sqlmodel import SQLModel, Field, Session from dotenv import load_dotenv import os load_dotenv() # Veritabanı URL'sini oluştur DATABASE_URL = ( f"postgresql://{os.getenv('USERNAME_DB')}:" f"{os.getenv('PASSWORD_DB')}@" f"{os.getenv('HOST_DB')}:" f"{os.getenv('PORT_DB')}/" f"{os.getenv('NAME_DB')}" ) engine = create_engine(DATABASE_URL, echo=False) def init_db(): SQLModel.metadata.create_all(engine) def get_session_db(): with Session(engine) as session: yield session ### SECRET KEY ### SECRET_KEY = os.getenv("SECRET_KEY") ALGORITHM = os.getenv("ALGORITHM") ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES")) pwd_context = CryptContext(schemes=[f"{os.getenv('CRYPTO_TYPE')}"], deprecated="auto") origins = [ "http://localhost", "http://localhost:8080", "http://localhost:3000", "http://localhost:8000", ] app = FastAPI() @app.on_event("startup") def on_startup(): init_db() app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )