Django: primeros pasos

Django es uno de los framweworks MVC de desarrollo web para Python más populares. Las principales características de Django son su sencillez y facilidad de uso, la importancia que da a la seguridad evitando a desarrolladores cometer los errores mäs comunes, y que es facilmente escalable.

Instalación

Muy sencilla, usando pipenv.
Ficheros de nuestro proyecto:
  • settings.py: Para controlar la configuración de nuestro proyeco
  • url.py: para asociar vistas (páginas) a urls.
  • wsgi.py: Web Server Gateway Interface. Es la plataforma de implementación principal de Django, el estándar de Python para aplicaciones y servidores web.
  • manage.py: utilizado para ejecutar varios comandos de django, y es lo que se ejecuta cuando arrancamos el servidor.

Proyectos y aplicaciones

Python entiende de proyecos y aplicaciones. Lo habitual es crear un proyecto y dentro del mismo varias aplicaciones. Por ejemplo un proyecto e-commerce podria tener una aplicación para la autenticación, otra para los pagos y otra para proveer de listados de stock. Para crear una nueva aplicación en nuestro proyecto utilizaremos:
Ficheros de nuestra aplicación:
  • admin.py: fichero de configuración para el Django Admin que viene por defecto.
  • apps.py: fichero de configuración para la propia aplicación.
  • migrations: lleva el control de cambios de nuestro fichero models.py para mantener sincronizado modelos y base de datos
  • models.py: definición de nuestra base de datos.
  • tests.py: test unitarios de nuestra aplicación
  • views.py: donde gestionaremos la lógica de nuestra aplicación
Aunque tengamos los ficheros necesarios en su directorio, Django no sabe de la existencia de esta aplicación hasta que no se lo digamos. Esto se hace en el fichero settings.py

views.py

Como dije, se encarga de ejecutar la lógica de la aplicación. Se que suena raro pensando en MVC donde esa lógica está en el Controlador. En Python es diferente.

urls.py

Ahora nos falta mappear esa función a una URL, el routing. Y para eso tenemos que crear un URLconf, que se traduce en un nuevo fichero urls.py en nuestra aplicación (no en nuestro proyecto).
O la alternativa:
Y por último añadir el urls.py de nuestra app a nuestro proyecto, modificando el urls.py del proyecto:

Templates

Evidentemente no vamos a poner código HTML en nuestra lógica. Python tiene un sistema de templates que veremos a continuación. ¿Dónde poner los templates? Podemos ponerlo a nivel de aplicación o a nivel de proyecto, donde queramos, pero no nos podemos olvidar de especificarlo en el fichero settings.py. Pero lo normal es crear un directorio templates dentro de nuestra aplicación, y si tenemos templates compartidos, como puede ser un código base como el footer, ponerlo a nivel de proyecto.

Vamos a reemplazar el código html que incluimos en la vista por el uso de un template que creamos en /templates: home.html
Y cambiamos el view como dijimos:

Comentarios

Entradas populares de este blog

Django REST framework

Envío de checkboxes o selector multiple por AJAX con jQuery

Django: Modelos