Приложения Django: все, что вам нужно знать в 2022 году

Опубликовано: 2021-01-04

Django — одна из лучших платформ Python, созданных профессионалами, которая поощряет прагматичный дизайн и быструю разработку для веб-разработчиков. Это быстро, безопасно и популярно среди веб-разработчиков. В Django есть реестр уже установленных приложений, в котором хранится конфигурация и который помогает осуществлять самоанализ. Он поддерживает полный список доступных моделей. Реестр называется приложениями. Приложения Django доступны в django.apps.

>>> из django.apps импортировать приложения

>>> apps.get_app_config('admin').verbose_name

«Администрация»

Оглавление

Джанго Проекты

Любые приложения Django можно назвать проектом. Он определяется модулем настроек. Однако он содержит и несколько других вещей. Например, если вы запустите django-admin startproject mysite, вы получите каталог проекта mysite. Он будет содержать пакет mysite Python с параметрами settings.py, urls.py, asgi.py и wsgi.py. Пакет часто можно расширить, включив в него CSS, приспособления и другие шаблоны, не связанные с каким-либо конкретным приложением.

Корневой каталог проекта или каталог с manage.py обычно содержит все приложения проекта, которые не устанавливаются отдельно.

Приложения Джанго

Приложение означает пакет Python, который имеет некоторые функции. Его можно повторно использовать в нескольких проектах. Приложения могут быть комбинациями представлений, моделей, URL-адресов шаблонов, статических файлов и т. д. Они часто подключаются к проектам с настройкой INSTALLED-APPS . Его часто можно связать с другими механизмами, такими как URLconfs, которые являются настройкой MIDDLEWARE .

Читайте: Зарплата разработчиков Django в Индии

Приложение Django — это набор кодов, который создает взаимодействие с несколькими частями определенной среды. У него нет объекта Application. Иногда Django может потребоваться взаимодействие с определенными приложениями для самоанализа или настройки. Следовательно, в AppConfig есть метаданные для установленных приложений. Пакет проекта также можно рассматривать как приложение, и он также может иметь модели.

Настройка приложений Django

Если вы хотите настроить приложение, вы должны создать подкласс AppConfig , а затем добавить к нему пунктирную линию в INSTALLED_Apps. Когда он получает пунктирную линию, Django начинает проверять переменную default_app_config . После определения он становится подклассом AppConfig для этого конкретного приложения. Если default_app_config не создан, Django будет использовать базовый класс AppConfig .

Читайте также: Разница между полным стеком и средним стеком

Для авторов приложений Django

Допустим, вы разрабатываете подключаемое приложение «Рок-н-ролл». Затем вы можете разработать имя следующим образом:

# рок_н_ролл/apps.py

из django.apps импортировать AppConfig

класс RockNRollConfig (AppConfig):

имя = 'рок_н_ролл'

verbose_name = «Рок-н-ролл»

Вы также сможете загрузить его как подкласс AppConfig, используя:

# рок_н_ролл/__init__.py

default_app_config = 'rock_n_roll.apps.RockNRolllConfig'

Таким образом, RockNRollConfig можно использовать, когда в установленных приложениях присутствует рок_н_ролл. Это поможет вам использовать функции AppConfig без необходимости обновления пользователями INSTALLED_APPS.

Для пользователей приложения

Допустим, вы используете приложение «Рок-н-ролл» в проекте под названием «Антология». Итак, вы хотите, чтобы до этого он назывался Jazz Manouche. Итак, вы можете выполнить следующие шаги:

# антология/apps.py

из rock_n_roll.apps импортировать RockNRollConfig

класс JazzManoucheConfig (RockNRollConfig):

verbose_name = «Джаз Мануш»

# антология/settings.py

УСТАНОВЛЕННЫЕ_ПРИЛОЖЕНИЯ = [

'антология.приложения.JazzManoucheConfig',

# …

]

класс AppConfig

Метаданные приложения хранятся в объектах конфигурации приложения. Некоторые из этих атрибутов настраиваются в подклассах AppConfig и устанавливаются Django как доступные только для чтения.

Настраиваемые атрибуты

AppConfig.имя

Путь: django.contrib.admin

Это помогает в определении приложения, в котором применяется конфигурация. Он устанавливается в подклассах AppConfig. Уникальный в проекте Django.

AppConfig.метка

Имя: админ

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

AppConfig.verbose_name

Название: Администрация

По умолчанию: label.title()

AppConfig.path

Пример каталога приложения: '/usr/lib/pythonX.Y/dist-packages/django/contrib/admin'

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

Атрибуты только для чтения

AppConfig.module

Пример корневого модуля: <module 'django.contrib.admin' from 'django/contrib/admin/__init__.py'>

AppConfig.models_module

Пример модуля с моделями: <module 'django.contrib.admin.models' from 'django/contrib/admin/models.py'>

Также может быть None, если он не содержит моделей.

Методы

AppConfig.get_models()

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

AppConfig.get_model

Возвращает конкретную модель без учета регистра: имя_модели. Название модели

Это помогает вызвать LookupError, если конкретной модели не существует. Для этого потребуется, чтобы реестр приложений был полностью заполнен.

AppConfig.ready()

Это может помочь переопределить метод и, следовательно, выполнить задачи инициализации, такие как регистрация сигналов. Может вызываться после полного заполнения реестра. Однако вы не можете импортировать модели на уровне модуля, где определены классы AppConfig. Однако вы можете импортировать их в ready(), которая использует get_model() или оператор импорта.

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

Когда пакет Python не имеет __init__.py, они называются пакетами пространства имен. Они могут быть распределены по нескольким каталогам и местам на sys.path. Приложению Django потребуется знаковая базовая файловая система, в которой Django на основе конфигурации будет искать статические ресурсы, шаблоны и т. д. Следовательно, приложение Django можно использовать только в том случае, если верно одно из следующих условий:

  • Пакет пространства имен имеет одно единственное расположение.
  • Класс AppConfig, который используется для настройки приложения, имеет атрибут класса пути.

Если ни одно из условий не выполнено, то Django покажет ImproperlyConfigured.

Реестр приложений Django

Некоторые общедоступные API предоставляются реестром приложений. Вот некоторые из методов, хотя они могут измениться:

приложения.готово

Когда для логического атрибута установлено значение True, а реестр полностью заполнен, и, следовательно, вызываются все методы AppConfig.ready().

приложения.get_app_configs()

Он будет возвращать итерацию экземпляров AppConfig.

apps.get_app_config (метка_приложения)

Он вернет AppConfig для приложения с заданной меткой app_label. Если приложение не существует, оно вызовет ошибку LookupError.

apps.is_installed( Он будет проверять, существует ли имя данного приложения в текущем реестре. app_name будет полным именем приложения, например: django.contrib.admin

apps.get_model( Он вернет модель с заданными model_name и app_label. Если приложение не существует, оно вызовет ошибку LookupError.

Процесс инициализации

Итак, теперь вопрос в том, как загружать приложения django. Когда Django запускается, django.setup() заполняет реестр.

настройка ( set_prefix = Истина )

Конфигурации Django происходят:

  • При первой загрузке настроек
  • Настройка ведения журнала
  • Если set_prefix имеет значение true, то префикс сценария револьвера URL становится FORCE_SCRIPT_NAME, если он определен или иным образом.
  • Реестр приложений инициализирован.

Автоматический вызов функции происходит:

  • Когда HTTP-сервер работает через поддержку WSGI Django
  • При вызове команды управления.

Устранение неполадок

Некоторые распространенные проблемы, с которыми можно столкнуться:

  • AppRegistryNotReady: происходит во время импорта конфигурации приложения или модуля моделей и запускает код, который не зависит от реестра приложений. Эта проблема может возникнуть, если вы выполняете запросы к базе данных с помощью ORM.
  • Ошибка импорта: невозможно импортировать имя… — возникает, когда последовательности импорта заканчиваются циклом. Вы можете устранить этот процесс, минимизировав зависимости между модулями моделей.
  • Django.contrib.admin вызывает автоматическое обнаружение модулей администратора. Измените INSTALLED_APPS с django.contrib.admin на django.contrib.admin.apps.SimpleAdminConfig, чтобы предотвратить это.

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

Получите курс по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Если вам интересно узнать больше о Django и других языках и инструментах для разработчиков с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов интенсивного обучения. Более 9 проектов и заданий, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Подготовьтесь к карьере будущего

Подать заявку на получение степени магистра в области разработки программного обеспечения