Hlavní myšlenkou je rozdělení aplikace do logických modulů (Blueprintů). Každý modul má svůj vlastní soubor, což umožňuje týmovou spolupráci bez konfliktů.
silly_qiz/
├── app/
│ ├── __init__.py # Inicializace a spojení modulů
│ ├── static/ # Statické soubory (CSS, JS, Obrázky)
│ ├── templates/ # Jinja2 HTML šablony
│ ├── home.py # Modul pro domovskou stránku
│ └── questions.py # Modul pro logiku kvízu
├── docs/ # Dokumentace projektu
├── pyproject.toml # Definice závislostí (uv)
├── .python-version # Verze Pythonu
├── .gitignore # Ignorované soubory pro Git
└── README.md # Základní info o projektu
app/__init__.pyTento soubor slouží jako srdce aplikace. Spojuje všechny části do jednoho celku pomocí Flask Blueprintů.
Příklad registrace modulů:
from . import home
app.register_blueprint(home.bp, url_prefix="/")
from . import questions
app.register_blueprint(questions.bp, url_prefix="/api/questions")
questions.py definujete routu @bp.route("/ahoj"), bude v celé aplikaci dostupná pod URL /api/questions/ahoj.home.py, questions.py)Každý soubor obsahuje logiku pro konkrétní část webu. To umožňuje každému členu týmu "pracovat na svém písečku".
app/templates/)Obsahují HTML soubory, které využívají engine Jinja2. To znamená, že do HTML můžete dynamicky vkládat data pomocí {{ promenna }}.
app/static/)Místo pro váš CSS kód, obrázky a JavaScript. Např. stylizace se nachází v app/static/css/style.css.
*trochu jsem tento soubor vylepšil pomocí AI.