Ich lerne mich derzeit in Werkzeug ein (bzw. ueberhaupt in das MVC Prinzip) und hab zwei Fragen - u.A. bzgl. der Strukturierung.
1) wenn ich im header einer Webseite immer die aktuellsten letzten zwei News sehen moechte, muss ich den Wert der Datenbankabfrage dann in jeder View Funktion an render_template uebergeben, sprich also in jeder View Funktion die Datenbankabfrage machen im Sinne von:
Code: Alles auswählen
def kontakt(request, page):
query = News.query.order_by(News.key.desc())
data = Newshandle(query, 2, News.key)
.....sonstiges.....
return render_template('template.html', data=data, ......)
2) bzgl. Routing, View-Funktionen und Templates
Ich denke, Ziel ist doch immer, moeglichst wenig doppelt zu schreiben, also quasi eine View Funktion + Template moeglichst haeufig zu verwenden wenn nur kleine Unterscheide sind.
Nehmen wir an, ich hab die Seite /kontakt/ dort steht einfach Text von links nach rechts, kein Menu auf der linken Seite, ich hab dafuer ne View-Funktion, die den Text aus der DB ruft und per render_template + Template 'kontakt.html' die Seite generiert.
Dann hab ich noch ne 2te URL /kontakt/weiteres/ dort steht der Text tabellarisch aufgelistet und es gibt noch ein Untermenu links. (das Template schaut also _ganz_ anders aus)...zusaetzlich ruf ich den Inhalt aus einer anderen Tabelle ab...kurz um...es ist praktisch alles anders.
Pack ich das ganze jetzt trotzdem unter die View Funktion 'kontakt' um nicht eine Funktion 'kontakt' und 'kontakt_details' zu haben und arbeite dann mit if Abfragen, im Sinn von
Code: Alles auswählen
def kontakt(request, page):
if page == 'index':
data = Kontakt.query.get(page)
return render_template('template1.html', data=data)
elif page == 'weiteres'
data = Inhalte.query.get(page)
return render_template('template2.html', data=data)
Danke