2

я заметил, рамки, такие как flask обычно имеют модуль с именем views для размещения: типа определенийКакая структура проекта соответствует MVC?

@app.route('/') 
def index(): 
    return render_template('index.html') 

, а затем jinja2 шаблонов находятся в директории templates, однако много из node.js рамок (паруса, Geddy , locomotive), как правило, ставят шаблоны .ejs в каталоге views и не имеют каталога templates.

Кажется, что это не должно быть субъективным; что является правильным в соответствии с моделью MVC? Должны ли файлы шаблонов находиться под каталогом представлений или должны быть определения обработчиков URL-адресов? Из того, что я могу сказать, приложение flask, похоже, имеет правильное определение views; если это действительно так, когда в контроллеры колбы входят или эти контроллеры определений тоже?

+2

Существует определенно не стандарт, поскольку MVC - это просто язык с перекрестными языками и платформой, а не спецификация для реализации. Я обычно следую конкретным предложениям библиотеки MVC для структуры. – WiredPrairie

+0

Флакон не является основой MVC. 'views.py' стал обычной практикой, но это не требуется. 'templates' является местом размещения шаблонов по умолчанию, хотя это можно изменить с помощью аргумента' template_folder'. – dirn

ответ

2

Там не является правильным или неправильным способом, шаблон MVC дает вам рекомендации по разделению проблем, он не говорит вам, как назвать или упорядочить вещи.

Вот как я думаю, что MVC компоненты отображение в приложении Колба:

  • М является самым простым для понимания, так как являются довольно четко определены модели. То, что иногда не совсем понятно, заключается в том, что модели - это не просто абстракции базы данных, а бизнес-логика приложения также является частью моделей.

  • V охватывает логику представления. В хорошо спроектированном флеш-приложении это обрабатывается шаблонами, поэтому я бы сказал, что с точки зрения шаблонов MVC == V.

  • C покрывает тонкий слой, который обновляет M и V на основе ввода, полученного от пользователь. В приложении Flask это обработчики запросов, которые имеют несколько вводящее в заблуждение имя «функции просмотра». Когда функция просмотра завершена, он возвращает пользователю обновленный вид (визуализированный шаблон).

2

Когда дело доходит до фреймворков, таких как Flask или Django, они скорее используют MVT (Model/View/Template), но он похож на MVC, за исключением терминологии. Разница заключается в том, что «Т» в MVT обозначает шаблон, который на самом деле является контроллером в MVC. Таким образом, View in Flask аналогичен контроллеру.

Так что не думайте о нем, как шаблоны против взглядов, но сосредоточиться на той части, что у вас еще есть 3 компонента: модель, бизнес-логики (просмотр/контроллеры и т.д.), визуалы (шаблон/html и т.д.)

Смежные вопросы