Flask-DJ: Django (mvc) структура для проекта на flask

от автора

image

Всем привет!

Когда я впервые столкнулся с 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

Если все шаги сделаны верно, то мы увидим следующее

image

P.S.

Надеюсь данная статья была для вас полезной.

Если вас заинтересовала данная библиотека, то вот ссылки на нее:

ссылка на оригинал статьи https://habr.com/ru/post/491852/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *