
Всем привет!
Когда я впервые столкнулся с Flask, у меня сразу возник вопрос по построению архитектуры проекта.
Прочитав пару статей на Хабре (https://habr.com/ru/post/275099/ и https://habr.com/ru/post/421887/), я вспомнил свой опыт создания проектов на Django, и решил сделать инструмент, благодаря которому не придется задумываться об архитектуре, но при этом можно будет использовать все возможности Flask.
Создание проекта
Для создания проекта с помощью данного инструмента необходимо создать файл setup.py.
from Flask_DJ import ProjectConstructor from os import getcwd your_project_name = 'app' project_dir = getcwd() ProjectConstructor(your_project_name, project_dir).startproject()
Если вам дополнительно нужна папка с шаблонами и статическими файлами, вы можете указать соответствующие флаги:
ProjectConstructor(your_project_name, project_dir, need_templates=True, need_static=True).startproject()
В результате должна получится следующая структура
(static и templates появятся при указании соответствующих флагов)
app/ app/ __init__.py config.py urls.py manage.py
Создание приложения
Приложением в данном случае называется модуль (элемент приложения).
Для создания необходимо прописать следующую команду (вместо index поставить имя вашего приложения).
$ python manage.py startapp index
После выполнения у проекта будет следующая структура:
app/ app/ __init__.py config.py urls.py index/ forms.py models.py urls.py views.py manage.py
Создаем принимающую (view) функцию
Все гайды принято начинать с Hello world, мы не будем исключением:
# index/views.py def index(): return "Hello world"
Создаем URL для нашей функции
Создаем относительный путь внутри index:
# index/urls.py from utils.urls import relative_path from .views import index urlpatterns = [ relative_path("", index), ]
Добавляем наше приложение к глобальному пути:
# app/urls.py from utils.urls import add_relative_path, include urlpatterns = [ add_relative_path("/", include("index.urls")), ]
Запускаем сервер
$ python manage.py runserver
Если все шаги сделаны верно, то мы увидим следующее

P.S.
Надеюсь данная статья была для вас полезной.
Если вас заинтересовала данная библиотека, то вот ссылки на нее:
ссылка на оригинал статьи https://habr.com/ru/post/491852/
Добавить комментарий