Wie wählt man das Template-Verzeichnis dynamisch aus, das in flask verwendet werden soll?
Standardmäßig Kolben verwendet template-Dateien im Verzeichnis "template":
/flaskapp
/application.py
/templates
/hello.html
Gibt es eine Möglichkeit, dynamisch zu wählen, template-Verzeichnis nach Benutzer angemeldet? Dies ist, wie ich will, dass die Verzeichnis-Struktur zu sein :
/flaskapp
/application.py
/templates (default template goes here)
/hello.html
/userdata
/user1
/template1
hello.html
/template2
hello.html
/user2
/template1
hello.html
/template2
hello.html
Nun, wenn ich den Benutzernamen des angemeldeten Benutzers und der name der Vorlage, aktiviert durch den Benutzer, ist es möglich, dynamisch wählen Sie das Verzeichnis zum laden der template-Dateien? Zum Beispiel,
/userdata/<username>/<activated template name>/
anstatt fester
/templates/
Was ich versuche zu erreichen, ist ein wordpress-wie Design-system für meine web-Anwendung, wo die Nutzer hochladen/wählen Sie die Themen für seine website.
InformationsquelleAutor der Frage anujkk | 2012-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es auch die Möglichkeit zum überschreiben von Jinja loader auf und legen Sie die Pfade, wo Jinja suchen nach den Vorlagen. Wie:
Verzeichnisse sind angeordnet in der Reihenfolge, wo Jinja muss ersten start sucht es. Dann aus der Ansicht, die Sie Rendern können Benutzer-spezifische Vorlage, wie diese:
wo Benutzernamen können Sie dinamically änderung in der Ansicht. Natürlich können Sie dort auch festlegen, mit welcher Vorlage (1 oder 2) zu machen. Aber im Grunde, was Sie wirklich vermisse, ist diese custom-Jinja-loader mit den angepassten Pfaden.
Hoffe, dass geholfen, oder hat die Ideen 🙂
InformationsquelleAutor der Antwort Ignas Butėnas
Übergeben Sie den Kolben Konstruktor eine "template_folder" - argument.
Wie so...
Hier ist die Dokumentation:
http://flask.pocoo.org/docs/api/
InformationsquelleAutor der Antwort nathan
Ich bin neu in Python, aber ich habe schon vor diesem problem. Ich weiß nicht, ob meine Lösung richtig ist, aber es funktioniert:
Zuerst müssen Sie erstellen module für jeden Benutzer
in application.py init-Kolben-app, fügen Sie die Globale Methode render_page_from und registrieren Blaupausen
in jedem Modul (user1, user2 etc.) init Blaupause in init.py
schließlich fügen Sie anzeigen (Aktion) - Methoden views.py wie diese
InformationsquelleAutor der Antwort Egor