Поддержка веб-фреймворков Django, Flask и FastAPI в OpenIDE Pro: навигация, автодополнение, проверки кода, генераторы и инструменты запуска, привычные пользователям профессиональных IDE.
Определение фреймворка
- Фреймворк каждого модуля определяется автоматически по файлам зависимостей, установленным пакетам интерпретатора и коду проекта.
- Новый проект на Django, Flask или FastAPI создаётся из File → New → Project: мастер сам создаёт виртуальное окружение, ставит фреймворк и разворачивает каркас.
Framework Explorer
- Окно Python Frameworks слева показывает структуру проекта в одном дереве: настройки, модели с полями и связями, view, эндпоинты, сигналы, миграции. Двойной клик открывает соответствующий код.
- Действия контекстного меню узлов: добавить поле в модель, создать миграцию, зарегистрировать модель в админке, сгенерировать DTO, Manager или ModelForm, добавить receiver сигнала, посмотреть SQL миграции и применить миграции до выбранной, создать ревизию Alembic и выполнить upgrade, открыть подключение к базе данных проекта.
- Экспорт спецификации OpenAPI по всем найденным роутам — с панели инструментов Explorer.
Эндпоинты
- Дерево эндпоинтов проекта для Django, DRF, Django Ninja, Flask и FastAPI в Explorer, с HTTP-методами и путями, и иконка на полях редактора у каждого роута.
- Навигация из теста к роуту и обратно: иконка у вызова
client.get("/…") ведёт к обработчику, а над обработчиком видно, сколько тестов его вызывают. - Для любого эндпоинта можно сгенерировать HTTP-запрос Connekt с JSON-телом, собранным из Pydantic-модели или DRF-сериализатора, заготовку pytest-теста (Alt+Enter → Generate test for endpoint), скопировать URL или запустить сервер и открыть адрес в браузере.
Django
- Автодополнение полей и lookups в
filter(), exclude(), get() и Q(), полей в конструкторе модели и типов полей после models. - Переход по строковым ссылкам
ForeignKey("app.Model") к классу модели; иконки на полях ведут от связи к модели, от ModelAdmin и ModelForm — к их модели, от view — к сериализатору. - Admin, формы и DRF: автодополнение имён полей в
list_display, Meta.fields и exclude, предупреждения о несуществующих полях, о clean_<поле>() без поля, о view DRF без сериализатора; генерация DRF-сериализатора по модели через Alt+Enter. - settings.py: автодополнение настроек и справка по ним (Ctrl+Q), исправление опечаток в именах настроек, проверка порядка
MIDDLEWARE и дублей в INSTALLED_APPS. - Find Usages по полю модели находит и строковые упоминания вроде
filter(title=…), а Rename правит их вместе с полем. - Окно Migrations: статус миграций, создание и применение, просмотр SQL. Run → Run manage.py Command… запускает любую команду; иконка запуска у
django.test.TestCase выполняет manage.py test. - Предупреждение о receiver, подписанном на сигнал, который нигде не отправляется.
FastAPI, Pydantic и SQLAlchemy
- Проверка, что параметры пути в декораторе совпадают с параметрами функции (FastAPI и Django Ninja), с исправлением Add missing path parameters; совет указать
response_model; предупреждение о блокирующих вызовах (time.sleep, requests, синхронная сессия БД) в async-роутах. - Автодополнение декораторов
@router.get/post/…, маркеров Query/Path/Body/Depends, значений response_model= и status_code=; переход от Depends(…) и add_task(…) к функции. - Pydantic: автодополнение полей в конструкторе модели и ключей
ConfigDict; миграция с v1 на v2 — устаревшие .dict(), @validator, class Config подсвечиваются и заменяются одним исправлением. - SQLAlchemy: переход по
relationship("Model"), автодополнение колонок в filter_by() и конструкторе модели, типов и аргументов в Column() и mapped_column().
Flask и консольные команды
- Автодополнение ключей
app.config["…"]; создание blueprint с автоматической регистрацией в create_app. - Окно Flask CLI запускает команды приложения; окно CLI Commands показывает дерево команд Click и Typer с опциями и аргументами.
- Окно Framework Console (Tools) — интерактивная консоль для
manage.py, flask и Click-команд с автодополнением.
Шаблоны Django и Jinja2
- Файлы
.html в Django- и Flask-проектах, а также .djhtml, .jinja2, .j2 открываются как шаблоны: подсветка тегов вместе с HTML, отдельная цветовая схема. - Автодополнение тегов, фильтров (включая собственные), переменных контекста из view и имён URL; переход по
extends, include и url, из render() и render_template() к файлу шаблона, из шаблона к view, которая его рендерит, и к наследующим шаблонам. - Сворачивание блоков и комментариев, подсветка парных тегов, автозакрытие
{% %}, и {# #}. - Точки останова прямо в шаблонах при отладке Django- и Flask-сервера.
Проверки кода и линтеры
- Инспекции безопасности:
debug=True во Flask, DEBUG = True в продакшен-настройках Django, захардкоженные секреты, verify=False, а также eval и pickle над данными запроса. - Прочие проверки: дублирующиеся роуты,
CharField без max_length, чтение переменной окружения, которой нет в .env.
Запуск, отладка и инструменты
- Конфигурации запуска Django Server, Flask Server и FastAPI Server с отладкой; адрес сервера в консоли кликабелен.
- При открытии проекта плагин предлагает установить объявленные, но не установленные зависимости.
- Профилировщик (ПКМ в редакторе → Profile): горячие точки, дерево вызовов и flame graph. Окно Plots собирает графики matplotlib и plotly из запусков.
Генерация кода
- New → Python Frameworks: Django App, Django Model, Django View, FastAPI Module (роутер, схемы, сервис, зависимости), Flask Blueprint, сущность или DTO по таблице полей, обработчик роута для текущего фреймворка.
- Live-шаблоны для Django, Flask и FastAPI (
djmodel, djview, fastget, flroute и другие) срабатывают только в коде своего фреймворка. - Автодополнение в
pyproject.toml.
Требуется OpenIDE Pro с активной подпиской. В бесплатной OpenIDE и других IDE на платформе IntelliJ плагин не загружается.