Всё что вы хотели знать о фреймворке Django

Импорты в Django

Импорт модулей является неотъемлемой частью разработки на Python и Django. PEP8 - официальное руководство по стилю для Python, рекомендует размещать иморты в начале файла, на отдельных строчках и группировать следующим образом:

  1. Импорт стандартных библиотек.
  2. Импорт сторонних библиотек.
  3. Импорт лоакальных приложений или библиотек.

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

Вот пример views.py для приложения блога:

# blog/views.py
from django.views.generic import ListView, DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy

from .models import Post # относительный импорт

class BlogListView(ListView):
    model = Post
    template_name = 'home.html'

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

Для импорта нашей модели используется относительный иморт, таким образом мы не указываем напрямую имя приложения, что делает код более переносимым. Если бы мы использовали from blog.models import Post, то если название приложения (blog) потом изменится, то придется везде, где оно используется, редактировать код.

Еще одно замечатльное правило - никогда не использовать импорт всего, т.е. *. Это плохой пример:

# blog/views.py
from django.views.generic import * # Плохая идея!

Почему не следует использовать такой импорт? Если views.generic в какой-то момент в будущем изменится непредвиденными способами, это может вызвать проблемы с безопасностью.

Поделитесь с другими:

Представления-классы
(Class-Based Views)

Детальное описание и структура классов Django.

Аутентификация в Django: полный пример входа, выхода и смены пароля

В этом руководстве вы узнаете, как легко добавить полноценную систему аутентификации приложение Django с функциями входа в систему, выхода из системы, смены пароля и сброса.

Django 2.2 предварительный выпуск 1

Выпущен релиз-кандидат 1 версии Django 2.2, в котором вы можете предварительно протестировать некоторые новые возможности перед выпуском Django 2.2.

Поиск узких мест производительности проекта на Django

При оптимизации производительности веб-приложения распространенная ошибка — начинать с оптимизации самой медленной страницы (или API). Помимо учета времени отклика, мы также должны учитывать трафик, который он получает, чтобы определить порядок оптимизации. В этой статье мы расскажем о веб-приложении Django, найдем узкие места с высокой эффективностью, а затем приступим к их оптимизации для повышения производительности.

Просмотр SQL запросов Django

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

Как подключить виджет выбора даты в Django

Из этого руководства вы узнаете как легко подключить виджет выбора даты в своем проекте Django. Мы узнаем, как установить его вручную, потом как настроить пользовательский виджет и, наконец, как использовать стороннее приложение Django с поддержкой средств выбора даты и времени.

Исправление ошибок, Django 2.0.13

Сегодня был осуществлен новый выпуск исправлений Django 2.0.13. Исправлен сбой в django.utils.numberformat.format_number(), когда число имеет более 200 цифр (#30177).

Новый формат middleware в Django 2

MIddleware (промежуточный слой) используются для модификации объекта приходящего запроса в представление (view) или для модификации объекта ответа, возвращаемого из представления. Они позволяют нам изменять запросы/ответы глобально.

Массовое обновление записей в Django используя аннотации и подзапросы

Как массово обновлять записи в Django с помощью аннотаций и подзапросов.

Структура шаблонов в Django

Существует два основных способа организации структуры шаблонов Django: на уровне приложений и пользовательский, на уровне проекта, который указывается в setting.py.

Исправления ошибок Django: 2.1.4 и 1.11.17

Сегодня команда разработчиков Django выпустила версии 2.1.4 и 1.11.17 с исправлениями ошибок. Пакеты и контрольные суммы доступны на странице загрузок, также как в Python Package Index. PGP key ID этого релиза от Carlton Gibson: E17DF5C82B4F9D00.