Мое приложение для колб в настоящее время состоит из одного test.py
файла с несколькими маршрутами и main()
определенным маршрутом. Можно ли как-нибудь создать test2.py
файл, содержащий маршруты, которые не были обработаны test.py
?
@app.route('/somepath')
def somehandler():
# Handler code here
Я обеспокоен тем, что в нем слишком много маршрутов, test.py
и хотел бы сделать его таким, чтобы я мог работать python test.py
, что также подберет маршруты, test.py
как если бы они были частью одного и того же файла. Какие изменения я должен внести test.py
и / или включить, test2.py
чтобы заставить это работать?
Вы можете использовать простой трюк, который заключается в импорте переменной приложения фляги из основного в другой файл, например:
test-routes.py
и в ваших основных файлах, где вы объявили приложение фляги, импортируйте тестовые маршруты, например:
app.py
Это работает с моей стороны.
источник
__main__
относится к вашему входному файлу, вот и все!import test-routes
не может быть в верхней частиapp.py
файла. Он рухнул Gunicorn, но затем после перемещения импорта в нижней части файла, то это сработало. «Просто убедитесь, что модуль импортирован, и мы делаем это в нижней части файла»Я хотел бы порекомендовать флакон-пустой на GitHub.
Он предоставляет простой способ понять чертежи , несколько представлений и расширений .
источник
Разделить приложение на чертежи - отличная идея. Однако, если этого недостаточно, и если вы хотите разделить сам Blueprint на несколько py-файлов, это также возможно, используя обычную систему импорта модулей Python, а затем цикл по всем маршрутам, которые импортируются из других файлов. ,
Я создал Gist с кодом для этого:
https://gist.github.com/Jaza/61f879f577bc9d06029e
Насколько я знаю, это единственный реальный способ разделить план на данный момент. Невозможно создать «вспомогательные чертежи» во Flask, хотя существует проблема, которая обсуждается по этому поводу:
https://github.com/mitsuhiko/flask/issues/593
Кроме того, даже если бы это было возможно (и, вероятно, выполнимо с использованием некоторых фрагментов из этого потока вопросов), вспомогательные чертежи могут быть слишком ограничивающими для вашего варианта использования в любом случае - например, если вы не хотите, чтобы все маршруты в субмодуль для того же URL-префикса.
источник
Эта задача может быть выполнена без чертежей и сложного импорта, используя централизованную карту URL
app.py
views.py
источник