Files
Schule_Docker/app.py
2025-11-12 11:35:02 +00:00

51 lines
1.4 KiB
Python

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from datetime import datetime
# Verbindung zur MariaDB
DATABASE_URL = "mysql+pymysql://mariadb:r5WdORhRYOajNZ9lcn1raCWpXAhQa1v6sM5xN8JEffr2rZLDhQvAGQVfcj6f7rzf@tkgo4k84c8wgcos40kgs8ows:3306/default"
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(bind=engine)
Base = declarative_base()
# Tabelle definieren
class Entry(Base):
__tablename__ = "entries"
id = Column(Integer, primary_key=True, index=True)
timestamp = Column(DateTime, default=datetime.utcnow)
name = Column(String(100))
code = Column(String(100))
Base.metadata.create_all(bind=engine)
# API definieren
app = FastAPI()
class EntryCreate(BaseModel):
name: str
code: str
@app.post("/entries/")
def create_entry(entry: EntryCreate):
session = SessionLocal()
db_entry = Entry(name=entry.name, code=entry.code)
session.add(db_entry)
try:
session.commit()
session.refresh(db_entry)
except Exception as e:
session.rollback()
raise HTTPException(status_code=500, detail=str(e))
finally:
session.close()
return {
"id": db_entry.id,
"timestamp": db_entry.timestamp,
"name": db_entry.name,
"code": db_entry.code
}