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 }