test-area/fomular_bsp_email/explain.txt

85 lines
2.4 KiB
Plaintext
Raw Normal View History

2025-03-29 17:23:45 +01:00
from flask import Flask, render_template, request, redirect, url_for
👉 Wir importieren Funktionen aus dem Flask-Framework:
Flask: Hauptklasse, um unsere Web-App zu erstellen
render_template: zeigt HTML-Dateien an
request: ermöglicht Zugriff auf Formulardaten
redirect & url_for: nützlich für Weiterleitungen (werden hier zwar nicht benutzt, aber vorbereitet)
app = Flask(__name__)
👉 Wir erstellen eine Instanz der Flask-App, sie heißt hier einfach app.
__name__ sagt Flask, wo sich das aktuelle Skript befindet. Das ist nötig für Routing, Templating etc.
@app.route('/')
def home():
return render_template('index.html')
🟢 Route 1 Startseite (/):
@app.route('/'): Flask soll diese Funktion ausführen, wenn jemand die Startseite aufruft (z.B. http://localhost:5000/)
render_template('index.html'): zeigt die HTML-Datei templates/index.html im Browser
@app.route('/kontakt', methods=['GET', 'POST'])
def kontakt():
🟢 Route 2 Kontaktformular (/kontakt):
Diese Funktion verarbeitet zwei HTTP-Methoden:
GET: Zeigt das Formular an
POST: Verarbeitet die abgeschickten Formulardaten
if request.method == 'POST':
👉 Prüft, ob das Formular abgeschickt wurde (per POST)
name = request.form['name']
nachricht = request.form['nachricht']
👉 Holt sich die Formulardaten:
name: aus dem <input name="name">
nachricht: aus dem <textarea name="nachricht">
Diese Werte stehen im request.form-Objekt.
return render_template('thankyou.html', name=name)
👉 Zeigt eine Danke-Seite an und übergibt den Namen, damit man dort z.B. schreiben kann:
„Danke für deine Nachricht, Torben!“
return render_template('contact.html')
👉 Falls es kein POST war (also beim Aufruf über Link oder URL direkt):
Dann zeige das Kontaktformular an.
if __name__ == '__main__':
app.run(debug=True, port=5000)
🟢 Das ist der Startpunkt des Programms:
Nur wenn du app.py direkt startest (nicht importierst), wird app.run() ausgeführt
debug=True: Flask zeigt Fehler direkt im Browser an und startet automatisch neu, wenn du Änderungen machst
port=5000: Die App läuft unter http://localhost:5000
💬 Zusammenfassung:
Diese App hat:
Eine Startseite (/) → zeigt index.html
Eine Kontaktseite (/kontakt) mit Formular
Bei GET → zeigt Formular (contact.html)
Bei POST → zeigt Dankeseite (thankyou.html) mit dem eingegebenen Namen