Django 1.11 Добавляет Более Простые Индексы Базы Данных

Django, высокоуровневая веб-платформа Python, которая позволяет создавать динамические веб-сайты, добавила новые классы, чтобы упростить создание индексов баз данных.

Django 1.11 был обозначен как долгосрочный релиз поддержки, что означает, что он будет получать обновления безопасности в течение как минимум трех лет после его выпуска.

Улучшения для индексов баз данных происходят из нового модуля django.db.models.indexes, в котором есть классы для создания индексов. Вы можете создавать составные и пользовательские индексы для баз данных, чтобы оптимизировать запросы к базам данных и ускорить время отклика от баз данных. Класс Index создает индекс b-дерева, как если бы вы использовали db_index в поле модели или index_together в мета-классе модели.

Еще одним дополнением является поддержка визуализации виджетов на основе шаблонов, чтобы упростить настройку виджетов форм. Процесс отрисовки формы можно настроить на нескольких уровнях: 

Виджеты могут указывать имена пользовательских шаблонов.

Формы и виджеты могут указывать пользовательские классы визуализации.

Шаблон виджета может быть переопределен проектом. (Многоразовые приложения, как правило, не должны переопределять встроенные шаблоны, поскольку они могут конфликтовать с пользовательскими шаблонами проекта.) 

Другие улучшения направлены на работу с данными. Теперь вы можете использовать выражения подзапросов для создания явных подзапросов с помощью ORM, избегая необходимости перехода на необработанный SQL. Вы также можете добавить явный подзапрос в набор запросов, используя выражение подзапроса.

Если вы хотите ссылаться на столбцы из внешнего запроса в наборе запросов, теперь есть опция OuterRef, которая позволяет ссылаться на определенное поле. 

Существует также новый квалификатор Exists. Это подкласс подзапроса, который использует инструкцию SQL EXISTS для определения наличия соответствующей строки в подзапросе. Во многих случаях это должно работать лучше, чем подзапрос, так как база данных может остановить оценку подзапроса при обнаружении первой совпадающей строки.

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

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