Moja aplikacja flask składa się obecnie z jednego test.py
pliku z wieloma trasami i main()
zdefiniowaną trasą. Czy istnieje sposób na utworzenie test2.py
pliku zawierającego trasy, które nie były obsługiwane test.py
?
@app.route('/somepath')
def somehandler():
# Handler code here
Obawiam się, że jest zbyt wiele tras test.py
i chciałbym, aby było tak, żebym mógł biegać python test.py
, co również będzie odbierać trasy test.py
tak, jakby były częścią tego samego pliku. Jakie zmiany muszę wprowadzić test.py
i / lub uwzględnić, test2.py
aby to zadziałało?
Chciałbym polecić flask-empty na GitHub.
Zapewnia łatwy sposób zrozumienia schematów , wielu widoków i rozszerzeń .
źródło
Możesz użyć prostej sztuczki, która polega na zaimportowaniu zmiennej aplikacji flask z pliku głównego do innego pliku, na przykład:
test-routes.py
aw swoich głównych plikach, w których zadeklarowałeś aplikację flask, zaimportuj trasy testowe, takie jak:
app.py
To działa z mojej strony.
źródło
__main__
odnosi się do twojego pliku wejściowego, to wszystko!Podzielenie aplikacji na plany to świetny pomysł. Jeśli jednak to nie wystarczy i jeśli chcesz podzielić schemat na wiele plików py, jest to również możliwe przy użyciu zwykłego systemu importu modułów Pythona, a następnie przechodzenia przez wszystkie trasy importowane z innych plików .
Stworzyłem Gist z kodem, aby to zrobić:
https://gist.github.com/Jaza/61f879f577bc9d06029e
O ile mi wiadomo, jest to obecnie jedyny możliwy sposób na podzielenie Planu. Nie jest możliwe tworzenie „pod-planów” w Flasku, chociaż jest otwarty problem z dużą ilością dyskusji na ten temat:
https://github.com/mitsuhiko/flask/issues/593
Ponadto, nawet gdyby było to możliwe (i prawdopodobnie jest to możliwe przy użyciu niektórych fragmentów z tego wątku wydania), podprogramy mogą i tak być zbyt restrykcyjne dla twojego przypadku użycia - np. Jeśli nie chcesz, aby wszystkie trasy w podmoduł, aby miał ten sam pod-prefiks adresu URL.
źródło
To zadanie można wykonać bez planów i trudnych importów za pomocą scentralizowanej mapy URL
app.py
views.py
źródło