Cómo instalar el framework Django para desarrollar aplicaciones web profesionales, con acceso a base de datos, usando Python. En este primer artículo realizaremos un proyecto y una aplicación web básica de ejemplo, «Hola mundo». También mostramos cómo acceder a Django administration (app web admin).
- Instalar Python.
- Instalar Django con pip de Python.
- Mi primer proyecto web Hola Mundo con Django y Python.
- Crear aplicación Hola mundo en proyecto Hola mundo de Django.
- Acceso a la app admin (administrador) de Django vía web.
Instalar Python
En primer lugar, para usar Django, necesitaremos tener instalado Python en el equipo (sea Windows o Linux). En el siguiente artículo explicamos cómo instalar Python en Windows:
Instalar Django con pip de Python
Para listar el framework Django en Python únicamente tendremos que abrir una ventana de shell de comandos (MS-DOS, símbolo de sistema) en Windows o la línea de comandos en Linux. Puesto que vamos a realizar una instalación de un componente que, además, requerirá conexión a Internet, es conveniente abrir la ventana de Símbolo del sistema como administrador, pulsando en «Ejecutar como administrador:
Antes de instalar Django, si queremos comprobar que efectivamente no está instalado en nuestro sistema, podremos ejecutar el siguiente comando:
1 |
python -m django --version |
Si no está instalado devolverá:
python.exe: No module named django
Esto también nos servirá para comprobar que tenemos Python correctamente instalado en el equipo y con las variables de entorno oportunas. Si la ejecución del comando anterior nos devuelve un mensaje como este:
«python» no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
Se debe a que no hemos instalado correctamente Python y no está la carpeta de instalación en la variable de entorno PATH del sistema.
Para instalar Django ejecutaremos el siguiente comando:
pip install Django
El comando anterior descargará e instalará la última versión disponible de Django, en nuestro caso la versión 4.0.1. Ahora, ejecutando el comando:
python -m django –version
Nos devolverá la versión de Django instalada:
4.0.1
Si necesitamos instalar una versión concreta de Django podemos usar el comando:
pip install Django==4.1
Cambiando 4.1 por la versión que queramos instalar.
Mi primer proyecto web Hola Mundo con Django y Python
Antes de continuar, conviene explicar brevemente la diferencia entre proyecto y aplicación. Básicamente un proyecto puede contener múltiples aplicaciones. Una aplicación puede ser una parte de un proyecto, por ejemplo, en un proyecto web de facturación, una aplicación de este proyecto podría ser la gestión de albaranes, otra la gestión de proveedores y otra la gestión de facturas. Todas las aplicaciones formarían parte del proyecto de facturación.
Entendido esto, pasamos a crear el proyecto «Hola mundo», como indicamos a continuación.
Desde la línea de comandos accederemos a la carpeta donde queramos que se guarden los proyectos Django, por ejemplo a la unidad D y a la carpeta ProyectoA_Python, subcarpeta Django:
cd D:\ProyectoA_Python\Django
d:
Ejecutaremos el siguiente comando para crear el proyecto en la carpeta en la que nos encontremos:
django-admin startproject hola_mundo
En nuestro ejemplo, creará un proyecto llamado «hola_mundo». El comando creará una carpeta dentro de la carpeta en la que estemos con el nombre del proyecto. Creará también los ficheros básicos del proyecto en la raíz, manage.py:
Y __init__.py, asgi.py, settings.py, urls.py y wsgi.py en la subcarpeta del proyecto:
Accederemos a la carpeta creada de nuestro proyecto «hola_mundo» por el comando anterior, con el comando:
cd hola_mundo
Y verificamos que se han creado los ficheros correspondientes con el comando:
dir
Si queremos probar que funciona correctamente el servidor web que incorpora Django y que ejecuta nuestro proyecto, podemos hacerlo con el siguiente comando:
python manage.py runserver
Una vez iniciado el servidor web, desde un navegador del equipo, accederemos a la URL:
http://localhost:8000
Si todo es correcto nos mostrará la siguiente página:
Si queremos detener el servidor web, pulsaremos Control + C en la ventana de MS-DOS.
Para evitar el error que aparece al ejecutar el servidor web Django:
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.
Ejecutaremos el comando:
python manage.py migrate
Crear aplicación Hola mundo en proyecto Hola mundo de Django
Anteriormente hemos creado el proyecto «hola_mundo», ahora crearemos una aplicación dentro de este proyecto llamada «holaMundo». Para ello, desde la carpeta del proyecto, ejecutaremos el comando:
python manage.py startapp holaMundo
Nos habrá creado otra subcarpeta con el nombre de la aplicación «holaMundo» con los ficheros básicos de la aplicación (admin.py, apps.py, models.py, tests.py, views.py):
- __init__.py: archivo especial de Python que indica que el contenido de esta subcarpeta será un módulo.
- admin.py: archivo de Django para registrar modelos y poder emplearlos en una aplicación para la gestión de datos.
- apps.py: archivo de configuración de la aplicación.
- migrations: carpeta para gestión de las migraciones.
- models.py: archivo para crear los modelos de la aplicación.
- tests.py: archivo para realizar pruebas de la aplicación.
- views.py: archivo para crear las funciones y vistas para la lógica de la aplicación. Será la capa de la lógica de negocio que se encarga de conectar la capa del modelo con la de la plantilla.
Para agregar código y crear nuestra página «Hola mundo» en nuestra aplicación «holaMundo», editaremos el fichero «views.py», podremos editarlo con un editor de texto plano o con cualquier otro editor de código. Agregaremos el siguiente código a este fichero:
1 2 3 4 |
from django.http import HttpResponse def index(request): return HttpResponse('Hola Mundo. <br><br>Esto es una prueba de aplicación web con Django por <a href="https://proyectoa.com">Proyecto A</a>') |
Guardaremos el código en el fichero views.py:
Una vez establecido el código de nuestra página para la aplicación web, necesitaremos hacer el «ruteo» en la aplicación y el proyecto para que la aplicación sea accesible desde el servidor web Django. Para ello crearemos el fichero urls.py en la carpeta de la aplicación (en nuestro caso en la carpeta holaMundo) y lo editaremos:
Agregaremos el siguiente código:
1 2 3 4 5 6 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] |
Y ahora editaremos el fichero urls.py que ya existe, ubicado en la carpeta del proyecto «hola_mundo»:
Este fichero tiene el siguiente código por defecto:
1 2 3 4 5 6 |
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ] |
Vemos que tiene la ruta para el acceso de la aplicación admin (que explicamos en el siguiente punto del artículo). Añadiremos el import para la aplicación holaMundo y su ruta correspondiente, quedando:
1 2 3 4 5 6 7 8 |
from django.contrib import admin from django.urls import path, include from holaMundo import urls urlpatterns = [ path('admin/', admin.site.urls), path('holaMundo/', include('holaMundo.urls')), ] |
Ya podremos iniciar el servidor web Django con el comando:
python manage.py runserver
Y desde un navegador web accederemos a la URL:
http://localhost:8000/holaMundo
Mostrando nuestra primera aplicación web Django:
En la consola de la línea de comandos podremos comprobar que cada vez que se accede al servidor web se añade una nueva línea de log:
[08/Jan/2022 22:25:33] «GET /holaMundo/ HTTP/1.1» 200 119
Acceso a la app admin (administrador) de Django vía web
Django incorpora una app de administración (admin) a la que se puede acceder una vez iniciado el servidor web, con el comando:
python manage.py runserver
Desde el navegador web, accederemos a la URL:
http://localhost:8000/admin
Nos solicitará usuario y contraseña:
Para establecer un usuario y contraseña de acceso a la app admin volveremos a la línea de comandos y ejecutaremos el siguiente comando:
python manage.py createsuperuser
El comando nos solicitará un usuario, una dirección de correo electrónico y la contraseña. Introduciremos estos datos y nos creará un superusuario para acceso a la app admin de Django:
Volveremos a iniciar el servidor web Django (si lo hemos detenido) y volvemos a acceder a la URL:
http://localhost:8000/admin
Ahora introduciremos el usuario y contraseña creados anteriormente:
Y tendremos acceso a Django administration:
Esta web de administración no tiene muchas opciones, sirve como un ejemplo más de lo que se puede hacer con Django. Básicamente podremos crear y modificar usuarios y grupos y establecer permisos para estos usuarios: