55 lines
1.1 KiB
Python
55 lines
1.1 KiB
Python
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 ###
|
||
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=["*"],
|
||
)
|
||
|
||
|
||
|