[<< Tag 25](./25_pandas_de.md) | [Tag 27 >>](./27_python_with_mongodb_de.md)

- [📘 Tag 26](#-tag-26)
- [Python für das Web](#python-für-das-web)
- [Flask Framework](#flask-framework)
- [Projektstruktur](#projektstruktur)
- [Routen erstellen](#routen-erstellen)
- [Templates verwenden](#templates-verwenden)
- [Layouts und Vererbung](#layouts-und-vererbung)
- [Statische Dateien (CSS)](#statische-dateien-css)
- [Deployment (Veröffentlichung)](#deployment-veröffentlichung)
- [💻 Übungen - Tag 26](#-übungen---tag-26)
# 📘 Tag 26
## Python für das Web
Python ist eine vielseitige Sprache, die auch in der Web-Entwicklung eine große Rolle spielt. Die beiden populärsten Frameworks sind **Django** (umfangreich) und **Flask** (leichtgewichtig). In diesem Kapitel lernen wir, wie man Flask verwendet.
### Flask Framework
Flask ist ein Micro-Web-Framework. Es ist einfach zu erlernen und bietet dennoch alle Werkzeuge, um moderne Webanwendungen zu bauen. Flask nutzt die **Jinja2** Template-Engine, um dynamische HTML-Seiten zu erzeugen.
### Projektstruktur
Ein typisches Flask-Projekt sieht so aus:
```
├── app.py # Die Hauptanwendung
├── static/ # Bilder, CSS, JavaScript
│ └── css/
│ └── main.css
└── templates/ # HTML-Dateien
├── home.html
└── layout.html
```
### Routen erstellen
Eine "Route" bestimmt, was passiert, wenn ein Nutzer eine bestimmte URL aufruft.
```python
from flask import Flask, render_template
import os
app = Flask(__name__)
@app.route('/') # Die Startseite
def home():
return '
Willkommen auf der Startseite!
'
@app.route('/about') # Die Über-uns-Seite
def about():
return '
Über uns
'
if __name__ == '__main__':
app.run(debug=True)
```
### Templates verwenden
Anstatt Text direkt im Python-Code zu schreiben, nutzen wir HTML-Dateien im Ordner `templates/`.
```python
@app.route('/')
def home():
return render_template('home.html', title='Startseite')
```
### Layouts und Vererbung
Um Code-Wiederholungen zu vermeiden (z. B. Navigation auf jeder Seite), nutzen wir ein Basis-Layout (`layout.html`), das von anderen Seiten erweitert wird.
**layout.html:**
```html
{{ title }}
{% block content %}{% endblock %}
```
**home.html:**
```html
{% extends 'layout.html' %}
{% block content %}
Willkommen!
{% endblock %}
```
### Deployment (Veröffentlichung)
Damit deine Seite für alle erreichbar ist, musst du sie auf einem Server veröffentlichen. Beliebte Dienste sind Heroku, PythonAnywhere oder digitale Ozeane (DigitalOcean). Dafür brauchst du eine `requirements.txt` und oft ein `Procfile`.
---
## 💻 Übungen - Tag 26
1. Erstelle eine kleine Flask-Anwendung mit mindestens drei Seiten (Home, Über uns, Kontakt).
2. Nutze ein gemeinsames Layout für alle Seiten.
3. Erstelle eine Seite "Text-Analysator", die einen Text entgegennimmt (Formular) und die Anzahl der Wörter zählt.
🎉 HERZLICEN GLÜCKWUNSCH! 🎉
[<< Tag 25](./25_pandas_de.md) | [Tag 27 >>](./27_python_with_mongodb_de.md)