Загрузка данных


from fastapi import FastAPI
from sqlmodel import SQLModel, Field, Session, create_engine, select
from typing import List

class Person(SQLModel, table=True):
    id: int | None = Field(default=None, primary_key=True)
    name: str
    city: str
    
sqlite_url = "sqlite:///database.db"
engine = create_engine(sqlite_url)

def init_db():
    SQLModel.metadata.create_all(engine)
    with Session(engine) as session:
        if not session.exec(select(Person)).first():
            data = [
                Person(name="Алексей", city="Белград"),
                Person(name="Мария", city="Нови-Сад"),
                Person(name="Иван", city="Ниш"),
                Person(name="Елена", city="Суботица"),
                Person(name="Дмитрий", city="Крагуевац"),
                Person(name="Анна", city="Чачак"),
                Person(name="Сергей", city="Панчево"),
                Person(name="Ольга", city="Лесковац"),
                Person(name="Николай", city="Крушевац"),
                Person(name="Татьяна", city="Валево")
            ]
            session.add_all(data)
            session.commit()

init_db()

app = FastAPI()

@app.get("/search")
#!                name = Саша
def search_people(name: str = ""):
    with Session(engine) as session:
        try:
            return session.exec(
                select(Person).where(Person.name == name)    
            ).all()
        except:
            return {"name":"Not found"}