Die Eigentliche Magie passiert in der main.py (oft auch app.py eigentlich egal) ...
Nachdem Flask mit allen Abhängigkeiten installiert ist ist, ist dieses Pythonskript der Ausgangspunkt für den ganzen Zauber...
app = Flask(__name__)
@app.route("/<zusatz>", methods=['GET', 'POST'])
def start_page(zusatz=None):
#Funktion tut irgendwas
# Da tut sich noch mehr
if (__name__ == "__main__"):
app.run(debug=True)
Sobald dann wie üblich die benötigten Module importiert wurden wird mit diesen Zeilen wohl am besten klar was passiert. Man startet den Schlamassel indem man main.py ausführt.
Ab jetzt horcht der Flask auf meinem Laptop am port 5000, wie er hier ja angibt (keine Angst, er ist nicht versessen auf diesen Port, aber wenn man auch den Apachen noch bei sich wohnen hat, ist mir das ganz gelegen, dass er nicht auch auf 8080 oder 80 will...
...im "debug" mode ist er sogar so nett, dass man ihn nicht neu starten muss, wenn man Änderungen an der Datei speichert - und wenn etwas schief geht, wirft er sogar Brauchbare Fehlerseiten raus!
Gut, aber was steht da. ich hab lange überlegt, ob ich mit diesem Ausschnitt beginnen soll - aber es zeigt eine Interessant Möglichkeit, die ich sonst ggf, vergessen hätte.... Die Sache ist nämlich erstmal ganz einfach - jetzt so aus der Hüfte:
Da könnte z.B. stehen :
@app.route('/')
def start():
@app.route('/GPSdaten',methods=['GET'])
def GPSd():
#......
return render_template("seite4.html", titel = t , Einleitung = einleitungstext ,......
@app.route('/hierlang',methods=['POST','GET'])
def sonstwas():
#........
return render_template("seite4.html", daten = tdaten )
@app.route('/hierlang/<variable>',methods=['POST','GET'])
def sonstwer(variable=None):
#......
return render_template("seite5.html", wert = variable)
Man ahnt es Schon: @app.route('/') fühlt sich verantwortlich für die Url http:127.0.0.1:5000 entsprechend http:127.0.0.1:5000/GPSdaten
Bei der Übergabe der Daten vom Skript zum Template durch render_template ist zu beachten:
#bei einer Übergabe via
#könnte
data=42 # String, Numerischer Datentyp , Boolean ...
# oder aber auch ein komplexeres Dictionary, eine Liste oder eine Instanz einer selbst definierten Klasse sein
data = {'name': 'Thomas', 'age': 52, 'status': 'Müde'}
#---- oder
data = ["Peter","Paul","Marie"]
#--oder
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
data = Person('Thomas', 52)
return render_template('seite2.html', daten=data)
Daher auch die kontrollstrukturen im Template.
Auf das Minimum reduziert, also eine wirklich überschaubare Angelegenheit, obwohl Flask natürlich noch viel mehr kann... Aber dieses wenige fühlt sich im Vergleich zu joomla an als wären Tonnen von Mühlsteinen von mir abgefallen...
Zwischenfazit: Für ein Tagebuch wie dieses ist joomla eine gute Wahl..
Der Gedanke eine Anwendung als joomla Erweiterung zu implementieren fällt so allerdings weiter und weiter von mir ab.
z.B. Frage ich mich nun Gerade: Warum funktioniert die Herforhebung in den Python Quelltexten nicht? Welecher "Helper" spuckt mir da wieder in die Suppe? Und die Einrückungen? Zerstört by Joomla & TinyMCE😨