Почему Frappe Framework заставляет пересмотреть подход к разработке на Python

13 июн 2026
10,743
5,303
221
4 дня

Представьте, что вам нужно собрать сложную ERP-систему или CRM с сотнями таблиц, ролевой моделью доступа и генерацией отчетов. Обычно это превращается в бесконечную рутину: описываем модели в Django, настраиваем Admin-панель, пишем контроллеры для REST API, а потом еще долго воюем с фронтендом, пытаясь подружить React-компоненты с бэкендом.

Разработчики из Frappe Technologies еще в 2005 году решили, что лучший код — это тот, который не написан. Они создали Frappe Framework, который работает по принципу метаданных. Вместо того чтобы хардкодить логику, вы описываете сущности (DocTypes), а фреймворк сам строит базу данных, UI и API.

От семантической паутины до реального бизнеса

Изначально авторы вдохновлялись идеей Semantic Web. Суть в том, что система должна понимать не просто «заголовок» и «текст», а «имя», «адрес» или «артикул товара». Frappe вырос из этой концепции и стал фундаментом для ERPNext — огромного опенсорсного проекта, в котором более 700 типов объектов.

Это не легковесная игрушка для пет-проектов на выходные. Если вы только начинаете учить Python, Frappe может показаться перегруженным. Но когда перед вами стоит задача сделать «серьезный софт для работы», он экономит недели разработки за счет своей монолитной, но гибкой структуры.

Что внутри коробки

Frappe — это full-stack решение в самом прямом смысле. Он объединяет Python и MariaDB на сервере с собственной библиотекой на клиенте.

Реклама

Автоматический REST API и Admin-панель

Как только вы создаете DocType (модель данных), фреймворк сразу выдает готовый RESTful API. Больше не нужно настраивать роуты или сериализаторы вручную. В дополнение к этому вы получаете полноценный интерфейс администрирования. Это не «голая» админка Django, а полноценная рабочая среда с фильтрами, поиском и настраиваемыми видами.

List View

Управление правами «из коробки»

В корпоративном софте права доступа — это всегда головная боль. У Frappe есть встроенный менеджер ролей. Можно настроить доступ к конкретным полям или документам на уровне интерфейса, не трогая код.

Role Permission Manager

Конструктор отчетов и форм

Пользователи часто просят изменить форму заказа или добавить колонку в отчет. Во Frappe это делается через встроенные инструменты визуальной настройки. Скрипты на стороне сервера или клиентский JavaScript добавляются точечно, чтобы расширить стандартное поведение, а не переписывать его с нуля.

Form View

Технический стек и философия

Фреймворк довольно консервативен в выборе технологий, и в этом его сила. Он использует:

  • Python для бэкенда.
  • MariaDB (или PostgreSQL) в качестве основной базы.
  • Redis для кеширования и очередей.
  • Node.js и Socket.io для real-time уведомлений.

Основа всего — Frappe Bench. Это CLI-инструмент, который управляет жизненным циклом приложений: установкой, обновлениями, миграциями и созданием новых сайтов. Frappe изначально многопользовательский (multi-tenant), что позволяет запускать десятки изолированных сайтов на одном инстансе.

Как попробовать в деле

Самый быстрый способ пощупать фреймворк — запустить его через Docker. Разработчики подготовили готовый конфиг для быстрого старта.

git clone https://github.com/frappe/frappe_docker
cd frappe_docker
docker compose -f pwd.yml up -d

Через пару минут по адресу localhost:8080 будет доступна рабочая система. Логин по умолчанию — Administrator, пароль — admin.

Если же вы планируете серьезную разработку, лучше использовать bench. Это позволит глубже понять, как фреймворк организует папки приложений и управляет зависимостями.

Кому это пригодится

Frappe идеально подходит, если вы строите:

  1. Внутренние инструменты для компании.
  2. Системы учета, складские программы или CRM.
  3. SaaS-платформы, где важна скорость разработки и стандартизация интерфейса.

Я бы не стал советовать Frappe для высоконагруженных микросервисов или уникальных лендингов с безумной анимацией. Его стихия — это формы, таблицы, бизнес-логика и сложные связи между данными. Если вам надоело в сотый раз писать CRUD и настраивать авторизацию, возможно, пора дать шанс этому «лоу-код» фреймворку на Python. Тем более, что у проекта огромное сообщество и целая школа (Frappe School), где можно бесплатно подтянуть знания.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.