En este capítulo nos vamos a dedicar a crear una sencilla app de varias páginas para que empieces a comprender de qué forma funciona Django.
Entrar al entorno virtual para crear el proyecto
Lo primero que vamos a hacer, es entrar al entorno virtual creado en los capítulos anteriores, si no los has visto, te recomiendo que los veas:
- Introducción a los entornos virtuales de Python.
- Los modelos MVC y MVT con Django.
- Protocolo HTTP.
- HTTP vs HTTPS.
- Introducción a Django con Python.
Si aun así, quieres continuar sin entorno virtual y sin ver esos capítulos, lo puedes hacer perfectamente.
El entorno virtual que tengo es este: entorno_de_pruebas_django.
entorno_de_pruebas_django\Scripts\activate
Una vez dentro, se puede crear el nuevo proyecto de Django.
Crear proyecto con Django
Vamos a crear un proyecto nuevo, no utilizaremos el creado anteriormente.
django-admin startproject proyecto_basico
Crear app con Django
Cuando tengas el proyecto creado, ya puedes empezar a crear la aplicación.
python manage.py startapp app_paginas
Asegúrate de que ejecutas el comando anterior con el prompt dentro de la carpeta del proyecto recién creado.
Crear las vistas de la app Django
Lo siguiente es crear las vistas de la aplicación. Para esto, nos vamos al archivo views de nuestra nueva app.
Aquí pon el siguiente código, son solicitudes HTTP que iré explicando a partir del siguiente capítulo.
from django.http import HttpResponse def inicio(request): return HttpResponse("¡Esta es la página de inicio!") def pagina1(request): return HttpResponse("Esta es la página 1.") def pagina2(request): return HttpResponse("Esta es la página 2.")
Con esto, tendremos 3 solicitudes con mensajes diferentes, los cuales asociaremos a tres páginas web diferentes.
Crear las rutas de la app Django
Crea el archivo «urls.py» en el directorio de la app y pon el siguiente código. Esto creará las diferentes URL para cada página de la app.
from django.urls import path from . import views urlpatterns = [ path('', views.inicio, name='inicio'), path('pagina1/', views.pagina1, name='pagina1'), path('pagina2/', views.pagina2, name='pagina2'), ]
Acto seguido, ves al archivo «urls.py» del proyecto, no el que has creado en la app y pon este otro código:
from django.urls import include, path urlpatterns = [ path('', include('app_paginas.urls')), ]
En el «include()» debes poner la ruta de la carpeta de tu app un punto y el archivo urls.
Finalmente, ves al archivo «settings.py» del proyecto y en «installed apps» añade el nombre de tu app así:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app_paginas' ]
El resto de elementos, no los toques.
Ejecuta el servidor
Vamos a ejecutar el servidor:
python manage.py runserver
Ves a localhost, puerto 8000 en el navegador.
http://127.0.0.1:8000/ o http://localhost:8000/
Si tienes errores en alguna parte, no ejecutará y te saldrán muchos errores. Generalmente basta con fijarse en la última línea de la consola.
Navegar entre páginas
Ahora, al llegar a la raíz, estamos visualizando esta solicitud:
def inicio(request): return HttpResponse("¡Esta es la página de inicio!")
Si vamos a «pagina1» o pagina2, veremos las otras solicitudes en diferentes páginas:
def pagina1(request): return HttpResponse("Esta es la página 1.") def pagina2(request): return HttpResponse("Esta es la página 2.")
Si te fijas, el mensaje de bienvenida está en la raíz (127.0.0.1:8000/), la página 1 en http://127.0.0.1:8000/pagina1/ y la página dos en http://127.0.0.1:8000/pagina2/.
Estas rutas son posibles gracias a la asociación que hemos realizado en el archivo urls de la propia app:
from django.urls import path from . import views urlpatterns = [ path('', views.inicio, name='inicio'), path('pagina1/', views.pagina1, name='pagina1'), path('pagina2/', views.pagina2, name='pagina2'), ]
Con path() establecemos cada ruta de la aplicación. La primera ruta está en blanco, es la raíz. La segunda pone ‘pagina1’ y lo mismo con la otra.
Después de la ruta, tenemos views.inicio, views.pagina1 y views.pagina2 con un atributo name que con un valor igual. Esto sirve para llamar a la solicitud correspondiente que se llama igual en el archivo «views.py».
El atributo name, realmente no lo estamos utilizando aquí. Digamos de momento que es como una especie de ID para llamar de manera fácil a la ruta. Lo usaremos en otro capítulo.
Dejamos el capítulo aquí. En el siguiente, explicaré el tema de HTTP, un protocolo imprescindible que debes conocer para seguir aprendiendo temas de backend.
No te pierdas nada del curso Máster en Python.
la mejor explicacion, mas claro imposible un millon de gracias
hola me gusto tu curso lo encuentro excelente, felicitaciones, me gustaria hacer mi propio proyecto, pero necesito aprender acerca de los formularios y como cargar esta información a tablas y poder importar la información para realizar indicadores de gestión en otros programas como powerbi. necesito ayuda
Excelente aportación, justo lo que estaba buscando!