Creando una app de varias URL con Django

Creando una app de varias URL con Django

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:

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:

página raíz app Django
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.")
páginas app Django
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.


3 comentarios en «0»

  1. 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

Deja una respuesta

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

curso django Entrada anterior Los modelos MVC y MVT con Django
Entrada siguiente HTTP y HTTPS con requests de Python