Как разделить колбу на несколько файлов?

В настоящее время мое приложение для колб состоит из одного файла 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 чтобы заставить это работать?

93 голоса | спросил Rolando 16 PM000000110000002531 2012, 23:43:25

3 ответа


0

Вы можете использовать обычную структуру пакетов Python, чтобы разделить свое приложение на несколько модулей, см. документы Flask.

Однако

  

Flask использует концепцию чертежей для создания компонентов приложения и поддержки общих шаблонов в приложении или между приложениями.

Вы можете создать подкомпонент вашего приложения в виде Blueprint в отдельном файле:

simple_page = Blueprint('simple_page', __name__, template_folder='templates')
@simple_page.route('/<page>')
def show(page):
    # stuff

А затем используйте его в основной части:

from yourapplication.simple_page import simple_page

app = Flask(__name__)
app.register_blueprint(simple_page)

Чертежи также могут связывать определенные ресурсы: шаблоны или статические файлы. Обратитесь к документам Flask для получения подробной информации.

ответил pixelistik 17 AM000000120000003731 2012, 00:09:37
0

Я бы хотел порекомендовать колбу-пусто на GitHub.

Он предоставляет простой способ понимания чертежей , нескольких представлений и расширения .

ответил Jonathan Prates 17 AM000000120000003331 2012, 00:52:33
0

Отличная идея - разделить приложение на чертежи. Однако, если этого недостаточно, и если вы хотите разделить сам Blueprint на несколько py-файлов, это также возможно, используя обычную систему импорта модулей Python, а затем просматривая все маршруты, импортируемые из других файлов. .

Я создал Gist с кодом для этого:

https://gist.github.com/Jaza/61f879f577bc9d06029e

Насколько я знаю, это единственный реальный способ разделить план на данный момент. Невозможно создать «вспомогательные чертежи» во Flask, хотя существует проблема, которая обсуждается по этому поводу:

https://github.com/mitsuhiko/flask/issues/593

Кроме того, даже если бы это было возможно (и, вероятно, выполнимо с использованием некоторых фрагментов из этой ветки выпуска), вспомогательные чертежи могут быть слишком ограничивающими для вашего варианта использования в любом случае - например, если вы не хотите, чтобы все маршруты в подмодуле имели одинаковый суб-префикс URL.

ответил Jaza 6 FebruaryEurope/MoscowbFri, 06 Feb 2015 07:08:02 +0300000000amFri, 06 Feb 2015 07:08:02 +030015 2015, 07:08:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132