Aplicaciones de Django: todo lo que necesita saber en 2022
Publicado: 2021-01-04Django es uno de los principales marcos de Python creados por profesionales que fomenta el diseño pragmático y el desarrollo rápido para los desarrolladores web. Es rápido, seguro y uno de los favoritos entre los desarrolladores web. Django tiene un registro de aplicaciones ya instaladas que almacena la configuración y ayuda a proporcionar introspección. Mantiene una lista completa de modelos disponibles. El registro se llama aplicaciones. Las aplicaciones de Django están disponibles en 'django.apps'
>>> desde django.apps importar aplicaciones
>>> apps.get_app_config('admin').nombre_verbose
'Administración'
Tabla de contenido
Proyectos Django
Cualquier aplicación de Django puede denominarse proyecto. Está definido por un módulo de configuración. Sin embargo, contiene varias otras cosas también. Por ejemplo, si ejecuta django-admin startproject mysite, obtendrá un directorio de proyecto mysite. Este contendrá un paquete mysite Python con setting.py, urls.py, asgi.py y wsgi.py. El paquete a menudo se puede ampliar para que incluya CSS, accesorios y otras plantillas no asociadas con ninguna aplicación específica.
El directorio raíz del proyecto o el que tiene manage.py normalmente contiene todas las aplicaciones del proyecto que no se instalan por separado.

Aplicaciones Django
Aplicación significa un paquete de Python que tiene algunas características. Se puede reutilizar en varios proyectos. Las aplicaciones pueden ser combinaciones de vistas, modelos, URL de plantilla, archivos estáticos, etc. A menudo se conectan en proyectos con configuración de APLICACIONES INSTALADAS . A menudo, se puede conectar con otros mecanismos opcionalmente, como URLconfs, que es la configuración de MIDDLEWARE .
Leer: Salario de desarrollador de Django en India
La aplicación Django es un conjunto de códigos que crea interacciones con varias partes de un marco específico. No tiene un objeto Aplicación. A veces, Django puede necesitar interactuar con ciertas aplicaciones para la introspección o configuración. Por lo tanto, hay metadatos en AppConfig para las aplicaciones instaladas. Un paquete de proyecto también se puede considerar como una aplicación y también puede tener modelos.
Configuración de aplicaciones Django
Si desea configurar una aplicación, debe subclasificar AppConfig y luego agregar una línea de puntos a eso en INSTALLED_Apps. Cuando obtiene la línea de puntos, Django comienza a buscar la variable default_app_config . Una vez definida, se convierte en la subclase AppConfig para esa aplicación específica. Si no se hace default_app_config , Django usará la clase base AppConfig .
Lea también: Diferencia entre pila completa y pila media
Para autores de aplicaciones Django
Supongamos que está desarrollando una aplicación conectable 'Rock 'n' roll'. Luego, puede desarrollar un nombre de la siguiente manera:
# rock_n_roll/aplicaciones.py
desde django.apps importar AppConfig
clase RockNRollConfig(AppConfig):
nombre = 'rock_n_roll'
verbose_name = “Rock and roll”
También podrá cargarlo como una subclase de AppConfig usando:
#rock_n_roll/__init__.py
default_app_config = 'rock_n_roll.apps.RockNRollConfig'
Por lo tanto, RockNRollConfig se puede usar cuando 'rock_n_roll' está presente en las aplicaciones instaladas. Le ayudará a hacer uso de las funciones de AppConfig sin que los usuarios tengan que realizar la actualización en INSTALLED_APPS.
Para usuarios de la aplicación
Supongamos que está utilizando la aplicación Rock 'n' roll en un proyecto llamado antología. Ahora, quieres que aparezca como Jazz Manouche antes de eso. Entonces, puedes seguir estos pasos:
# antología/apps.py
desde rock_n_roll.apps importar RockNRollConfig
clase JazzManoucheConfig(RockNRollConfig):
verbose_name = “Jazz Manouche”
# antología/ajustes.py
APLICACIONES_INSTALADAS = [
'antología.aplicaciones.JazzManoucheConfig',
#…
]
clase AppConfig
Los metadatos de una aplicación se almacenan en objetos de configuración de la aplicación. Algunos de estos atributos se configuran en las subclases de AppConfig y se establecen como de solo lectura o por Django.
Atributos configurables
AppConfig.nombre
Ruta: django.contrib.admin
Ayuda a definir la aplicación en la que se aplica la configuración. Se establece en las subclases de AppConfig. Único en un proyecto Django.
AppConfig.etiqueta
Nombre: administrador
Ayuda a volver a etiquetar una aplicación, especialmente si dos de ellas tienen etiquetas en conflicto. Se convierte en el último componente de un nombre por defecto. Debe ser un identificador válido de Python. Único en proyectos Django.

AppConfig.nombre_verbose
Nombre: Administración
El valor predeterminado es: etiqueta.título()
AppConfig.ruta
Ejemplo de directorio de aplicaciones: '/usr/lib/pythonX.Y/dist-packages/django/contrib/admin'
En muchos casos, Django puede detectarlo y configurarlo automáticamente, pero puede anular el atributo de clase explícitamente a través de la subclase AppConfig.
Atributos de solo lectura
AppConfig.módulo
Ejemplo de módulo raíz: <módulo 'django.contrib.admin' de 'django/contrib/admin/__init__.py'>
AppConfig.models_module
Ejemplo de módulo con modelos: <module 'django.contrib.admin.models' from 'django/contrib/admin/models.py'>
También puede ser Ninguno si no contiene modelos.
Métodos
AppConfig.get_models()
Ayudará a devolver una clase de modelo iterable para la aplicación. Requerirá que el registro de la aplicación esté completamente poblado.
AppConfig.get_modelo
Devuelve el modelo específico sin distinción entre mayúsculas y minúsculas: model_name. Nombre del modelo
Ayuda a generar un LookupError si no existe un modelo específico. Requerirá que el registro de la aplicación esté completamente poblado.
AppConfig.listo()
Puede ayudar a anular el método y, por lo tanto, realizar tareas de inicialización como registrar señales. Se puede llamar una vez que el registro esté completamente poblado. Sin embargo, no puede importar modelos a nivel de módulo donde se definen las clases de AppConfig. Sin embargo, puede importarlos en ready(), que usa get_model() o declaración de importación.
Paquetes de espacio de nombres utilizados como aplicaciones
Cuando un paquete de Python no tiene __init__.py, se conocen como paquetes de espacio de nombres. Se pueden distribuir en varios directorios y ubicaciones en sys.path. La aplicación Django necesitará un sistema de archivos de base de firmas en el que Django, según la configuración, buscará activos estáticos, plantillas, etc. Por lo tanto, la aplicación Django solo se puede usar si uno de estos es verdadero:
- El paquete de espacio de nombres tiene una sola ubicación.
- La clase AppConfig que se utiliza para configurar la aplicación tiene un atributo de clase de ruta.
Si no se cumple ninguna de las condiciones, Django mostrará Improperly Configured.
Registro de aplicaciones de Django
Ciertas API públicas son proporcionadas por el registro de aplicaciones. Estos son algunos de los métodos, aunque pueden cambiar:
aplicaciones.listo
Cuando el atributo booleano se establece en True y el registro está completamente poblado y, por lo tanto, se llaman todos los métodos AppConfig.ready().
aplicaciones.get_app_configs()
Devolverá una iteración de instancias de AppConfig.
apps.get_app_config(app_label)
Devolverá una AppConfig para la aplicación que tiene una app_label determinada. Si no existe ninguna aplicación, generará un LookupError.
apps.is_installed( Se estará comprobando si existe un nombre de la solicitud dada en el presente registro. app_name va a ser el nombre completo de una aplicación, ejemplo: django.contrib.admin
apps.get_model ( etiqueta_aplicación , Devolverá el modelo con el model_name y app_label dados. Si no existe ninguna aplicación, generará un LookupError.
Proceso de inicialización
Entonces, ahora la pregunta es cómo cargar aplicaciones Django. A medida que se inicia Django, django.setup() llenará el registro.
configuración ( set_prefix=Verdadero )
Las configuraciones de Django ocurren:
- Al cargar primero la configuración
- Iniciar sesión configurar
- Si set_prefix es verdadero, entonces el prefijo del script revolver URL se convierte en FORCE_SCRIPT_NAME si está definido o no.
- El registro de la aplicación se inicializa.
Se produce una llamada automática de función:

- Cuando el servidor HTTP se ejecuta a través de un soporte WSGI de Django
- Cuando se invoca el comando de gestión.
Solucionar problemas
Algunos problemas comunes que uno podría enfrentar son:
- AppRegistryNotReady: Ocurre durante la importación de una configuración de aplicación o código de activación del módulo de modelos que no depende del registro de la aplicación. Si ejecuta consultas de base de datos con ORM, este problema podría ocurrir.
- ImportError: no se puede importar el nombre… – Tiene lugar cuando las secuencias de importación terminan en un bucle. Puede eliminar el proceso minimizando las dependencias entre módulos de modelos.
- Django.contrib.admin provoca el descubrimiento automático de módulos de administración. Cambie INSTALLED_APPS de django.contrib.admin a django.contrib.admin.apps.SimpleAdminConfig para evitarlo.
Con suerte, ahora puede integrar aplicaciones Django en su desarrollo web fácilmente.
Obtenga un curso de desarrollo de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Conclusión
Si está interesado en obtener más información sobre Django y otros lenguajes y herramientas de desarrollo de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de formación rigurosa. Más de 9 proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.
