Flask - Где лучше всего разместить функциональную логику? - PullRequest
0 голосов
/ 02 октября 2019

Я совсем новичок в фляге и изучал использование Blueprints при создании нового проекта. В настоящее время я работаю над небольшим личным веб-сайтом для себя, однако у меня есть несколько вопросов о том, где следует выполнять определенные процессы.

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

Если это предположение верно, где вы вообще разместите всю функциональную логику? Не могли бы вы создать вспомогательный файл в приложении и выделить этот файл для обработки всей пользовательской логики?

1 Ответ

0 голосов
/ 02 октября 2019

Большинство кодовых баз, которые вы найдете, будут иметь структуру MVC

  1. M = Модель
  2. V = Вид
  3. C = Контроллер

Папка Models будет содержать «models», что в основном является необычным термином для классов, которые могут взаимодействовать с конкретной таблицей в вашей реляционной базе данных.

Папка Views будет содержать все ваши HTML-шаблоны, которыевы можете выполнить рендеринг.

Папка Controllers будет содержать контроллер, который в основном представляет собой маршруты, которые вызываются другими службами или вашим веб-интерфейсом.

Хорошей практикой также является разделение бизнес / функциональной логики. в папку под названием Менеджеры.

Допустим, у вас есть контроллер с именем resource_controller, здесь вы можете написать логику для обработки запросов API к маршрутам, которые относятся к этому ресурсу. Вся бизнес-логика для resource_controller должна храниться в resource_manager. Все операции по извлечению и обработке данных должны обрабатываться resource_manager. Вам также понадобится модель resource. Задача resource - выполнить CRUD-операции с базой данных и вернуть необходимые данные в resource_manager, который, в свою очередь, обработает данные в информацию и может передать их в resource_controller. Вы можете вернуть обработанные данные из resource_controller обратно в соответствии с вашими потребностями.

У вас также может быть файл helper, содержащий код, который используется несколькими менеджерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...