Meine Kolbenanwendung besteht derzeit aus einer einzelnen test.py
Datei mit mehreren Routen und der main()
definierten Route. Gibt es eine Möglichkeit, eine test2.py
Datei zu erstellen , die Routen enthält, die nicht verarbeitet wurden test.py
?
@app.route('/somepath')
def somehandler():
# Handler code here
Ich test.py
mache mir Sorgen, dass es zu viele Routen gibt, und möchte es so gestalten, dass ich es ausführen kann. python test.py
Dadurch werden die Routen auch so aufgenommen, test.py
als ob sie Teil derselben Datei wären. Welche Änderungen muss ich vornehmen test.py
und / oder einbeziehen test2.py
, damit dies funktioniert?
Ich möchte flask-empty bei GitHub empfehlen .
Es bietet eine einfache Möglichkeit, Blaupausen , mehrere Ansichten und Erweiterungen zu verstehen .
quelle
Sie können einen einfachen Trick verwenden, bei dem die Flask-App-Variable aus main in eine andere Datei importiert wird, z.
test-routes.py
und in Ihren Hauptdateien, in denen Sie die Kolben-App deklariert haben, importieren Sie Testrouten wie:
app.py.
Es funktioniert von meiner Seite.
quelle
__main__
bezieht sich auf Ihre Eingabedatei, das war's!Die App in Blaupausen zu unterteilen, ist eine großartige Idee. Wenn dies jedoch nicht ausreicht und Sie den Blueprint selbst in mehrere Py-Dateien aufteilen möchten, können Sie dies auch mit dem regulären Python-Modul-Importsystem tun und anschließend alle Routen durchlaufen, die aus den anderen Dateien importiert werden .
Ich habe einen Gist mit dem Code dafür erstellt:
https://gist.github.com/Jaza/61f879f577bc9d06029e
Soweit mir bekannt ist, ist dies derzeit die einzig mögliche Möglichkeit, eine Blaupause aufzuteilen. Es ist nicht möglich, "Unterpläne" in Flask zu erstellen, obwohl ein Problem offen ist, über das viel diskutiert wird:
https://github.com/mitsuhiko/flask/issues/593
Selbst wenn dies möglich wäre (und es wahrscheinlich möglich ist, einige der Snippets aus diesem Issue-Thread zu verwenden), können Sub-Blueprints für Ihren Anwendungsfall ohnehin zu restriktiv sein - z. B. wenn Sie nicht alle Routen in a möchten Submodul mit demselben URL-Subpräfix.
quelle
Diese Aufgabe kann ohne Blaupausen und schwierige Importe mithilfe der zentralisierten URL-Zuordnung ausgeführt werden
app.py.
views.py
quelle