Plugin Icon if

Python Frameworks

0 загрузок
Обновлено:
1 день назад
Версия:

1.0.0

Обзор
Версии

Обзор

Поддержка веб-фреймворков 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 плагин не загружается.

Версии

Версия
Диапазон совместимости
Дата обновления
2026
1.0.0
262
13.10.2026
Скачать
Plugin ID:
ru.openide.pyframeworks
icon