Introducción a Django con Python

Introducción a Django con Python

Empezamos un nuevo módulo en el curso de Máster en Python. Se trata de Django. Lo haremos con una completa introducción a Django.


¿Qué es Django?

Django es un framework de desarrollo para Python que se usa para la construcción de sitios web. Esto quiere decir, que entre otras cosas, podrás crear aplicaciones web completas. Esto es a lo que nos vamos a dedicar en este y en los próximos capítulos.

Además, si no sabes nada o prácticamente nada de backend, no te preocupes, porque irás aprendiendo a medida que aprendes a manejar Django.

Instalación de Django

Empecemos con la instalación de Django. El único requisito es tener Python 3.5 o superior instalado y pip en la versión 19 o superior.

Crear un entorno virtual para Django

Empezando a utilizar Django y los temas de backend, ya es hora de que empieces a manejar los entornos virtuales. Si no sabes lo que son ni como funcionan, te recomiendo que leas antes el capítulo anterior del curso, Introducción a los entornos virtuales de Python.

Yo voy a crear este entorno virtual:

python -m venv entorno_de_pruebas_django

Si tienes la extensión Python instalada en Visual Studio Code, te saldrá este mensaje. Dale al botón "Sí".

entornos virtuales Python VSCODE

La estructura de carpetas te quedará así:

entornos virtuales Python

El archivo test.py lo he creado manualmente en la raíz. Lo he puesto para ir haciendo algunas pruebas si es necesario.

Activar el entorno virtual de Python

Para entrar en el entorno virtual recién creado, hay que ejecutar el script "activate" que se ha creado con el entorno virtual. En mi ejemplo, la ruta es esta:

entorno_de_pruebas_django\Scripts\activate

Si el comando se ha ejecutado sin errores, te aparecerá en la consola un prompt alterado:


(entorno_de_pruebas_django) D:\tests\python\proyecto-django>

Si en algún momento necesitas salir y volver al prompt normal, solo tienes que poner esto en la consola:

deactivate

Y cuando quieras volver a ejecutarlo, el comando de antes, el de "activate".

Para instalar Django, solo tienes que poner esto en la consola:

pip install django

Recuerda que todo lo que instales, se queda contenido en el entorno virtual, de modo, que no tendrás Django instalado de forma general, solo estará en tu entorno virtual.

Comprobar la versión de Django instalada

Después, comprueba la versión que se te ha instalado, así podrás, de paso, comprobar si se te ha instalado correctamente.

python -m django --version

Diferencia entre proyecto y aplicación de Django

Antes de seguir, es importante que conozcas bien la diferencia entre un proyecto y una aplicación de Django.

Un proyecto en Django representa toda la aplicación web y contiene la configuración y ajustes relacionados con todo el sitio web. Un proyecto puede tener múltiples aplicaciones (apps) dentro de él que se pueden usar para implementar alguna funcionalidad.

Puedes crear múltiples aplicaciones dentro de un solo proyecto de Django y estas aplicaciones pueden ser independientes entre sí.

Crear proyecto de Django

Ahora que ya tenemos el entorno virtual creado y Django instalado en él, es el momento de crear un proyecto nuevo con Django. Para ello, escribe lo siguiente en la consola (donde "proyecto_django_pruebas", escribe el nombre del proyecto):

django-admin startproject proyecto_django_pruebas

Este proyecto es el que contendrá desde una hasta varias aplicaciones. Para que lo entiendas, lo que acabas de crear, es un contenedor para almacenar varias aplicaciones de Django.

carpeta proyecto y app django

Por el momento, no toques nada de estos archivos. Sin embargo, es conveniente que sepas para qué sirve cada uno.


Archivos de proyecto Django

Los archivos init.py, asgi.py, settings.py, urls.py, wsgi.py y manage.py son archivos importantes en un proyecto Django.

  • init.py es un archivo vacío que le indica a Python que este directorio debería ser considerado como un paquete Python.
  • asgi.py contiene la configuración para la implementación opcional a la Interfaz de puerta de enlace de servidor asíncrono o ASGI, que proporciona un estándar para las apps que son sincronizadas o ASGI, y se considera como sucesor de WSGI.
  • settings.py contiene ajustes/configuración para este proyecto Django; nos define un conjunto de configuraciones que podemos aplicar sobre el proyecto de manera global.
  • urls.py contiene las declaraciones URL para este proyecto Django; desde aquí podemos (por ejemplo) cargar más archivos de URLs de otras aplicaciones o dependencias.
  • wsgi.py es el archivo de entrada para trabajar con servidores WSGI y realizar el deploy.
  • manage.py es una utilidad de la línea de comandos que le permite interactuar con este proyecto Django de diferentes formas.

Seguramente, todo esto no tenga aún mucho sentido. Sin embargo, iremos profundizando en todo lo que necesitemos.

Crear aplicación Django

El siguiente paso es crear tu primera aplicación con Django. Esto es tan fácil como ejecutar el siguiente comando en la consola (donde "primera_app_django", va el nombre de tu aplicación):

python manage.py startapp primera_app_django

Antes de ejecutarlo, te tienes que asegurar de que el prompt de la consola está en la raíz del proyecto creado. En mi caso, estoy en la raíz del entorno virtual, de modo, que tengo que desplazarme al directorio del proyecto Django:

cd proyecto_django_pruebas

Si no sabes bien como hacer esto, te recomiendo que veas el vídeo de arriba, el cual, muestra el proceso.

Una vez puesto el comando de arriba (el de startapp), se creará una nueva carpeta con todo lo necesario para empezar con tu nueva aplicación.

Archivos de aplicación Django

En una aplicación Django, los archivos admin.py, apps.py, models.py, tests.py y views.py, así como la carpeta migrations, tienen propósitos específicos:

  • init.py es un archivo vacío que le indica a Python que este directorio debería ser considerado como un paquete Python.
  • admin.py: es un archivo de configuración para una aplicación compilada de Django llamada Django Admin.
  • apps.py: es un archivo de configuración de la aplicación en cuestión.
  • models.py: aquí se definen los modelos de datos de la aplicación.
  • tests.py: aquí se pueden escribir pruebas para la aplicación.
  • views.py: aquí se definen las vistas de la aplicación, que son funciones que manejan las solicitudes y devuelven respuestas.
  • migrations: esta carpeta contiene archivos para mantener el registro de los cambios que creas en el archivo models.py, manteniéndolos sincronizados.
Archivos proyecto django

Activar el servidor de Django

Para ejecutar la aplicación en el navegador y ver algún resultado, debemos ejecutar el servicio de Django.


La URL que tienes que escribir en el navegador es alguna de estas dos. Ambas son sinónimos (esta URL es para trabajar en local, cuando trabajemos en servidores externos, la ruta será diferente).

http://127.0.0.1:8000/

o

http://localhost:8000/

Verás que la página aparece como sin conexión en el navegador. Eso es porque tienes que ejecutar el servicio de Django. Esto se hace tan fácil como introducir este comando en la consola:

python manage.py runserver

Asegúrate de estar en la consola en la raíz del proyecto Django, donde está el archivo manage.py.

En la consola te aparecerán mensajes como estos:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 28, 2023 - 11:21:02
Django version 4.1.7, using settings 'proyecto_django_pruebas.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Ahora, recarga la página del navegador. Si lo has hecho todo correcto, te saldrá esta página:

raíz url django

Abrir una página de prueba de la app de Django

El último paso que quiero que hagas en este capítulo, es el de crear un pequeño código escrito con Django, que muestre un "¡Hola mundo!", u otra frase en el navegador, para que puedas decir que has creado ya la primera página con Django.

Ves al archivo views.py de tu app y pega este contenido. No voy a explicarlo como funciona este código en este capítulo, lo iré haciendo en los próximos.

Lo que sí que puedes cambiar es el mensaje del string.

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse

def hola_mundo(request):
    return HttpResponse("Hello PCMaster!")

Después de crear el contenido, es el momento de añadirle una ruta en el archivo urls.py del proyecto Django.


Aquí, le he añadido la línea 3 y la 7. La 3, es para que tenga acceso al archivo views que contiene el código y en el path, pongo la ruta que quiera darle a esa página.

from django.contrib import admin
from django.urls import path
from primera_app_django.views import hola_mundo

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hola-mundo/', hola_mundo),
]

Guarda los cambios y ves a la ruta definida en urls.py:

http://localhost:8000/hola-mundo/

hola mundo con django

No te pierdas el resto de capítulos del curso Máster en Python.


Un comentario en «Introducción a Django con Python»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

protocolo http Entrada anterior Protocolo HTTP: ¿Cómo se comunican los clientes web y los servidores?
curso django Entrada siguiente Los modelos MVC y MVT con Django