Manejo de mas vistas con Django y Python


Vamos a crear mas vistas y enlazarlas en Django y Python y dejaremos la teoría para crear muchas mas paginas.

En el articulo anterior ya les explique la introduccion a Django y creamos una vista ahora vamos a continuar y crear mas vistas y enlaces.

Básicamente lo que haremos sera agregar mas funciones al archivo vistas.py y agregaremos las rutas nuevas al archivo urls.py.

También agregaremos otro archivo de vistas al que llamaremos vistas2.py y agregaremos las rutas de vistas2.py al archivo urls.py

Archivo vistas.py

El archivo vistas.py va a quedar de la siguiente manera.

from django.http import HttpResponse

def index(request):
	html = "<h1>Pagina principal!</h1>"
	html+= "<a href='./'>Ir al inicio</a><br>";
	html+= "<a href='./pagina2'>Ir a pagina 2</a><br>";
	html+= "<a href='./pagina3'>Ir a pagina 3</a>";
	return HttpResponse(html)


def pagina2(request):
	html = "<h1>Pagina 2!</h1>"
	html+= "<a href='./'>Ir al inicio</a><br>";
	html+= "<a href='./pagina2'>Ir a pagina 2</a><br>";
	html+= "<a href='./pagina3'>Ir a pagina 3</a>";
	return HttpResponse(html)

def pagina3(request):
	html = "<h1>Pagina 3!</h1>"
	html+= "<a href='./'>Ir al inicio</a><br>";
	html+= "<a href='./pagina2'>Ir a pagina 2</a><br>";
	html+= "<a href='./pagina3'>Ir a pagina 3</a><br>";
	html+= "<a href='./pagina4'>Ir a pagina 4</a>";
	return HttpResponse(html)

Aquí podemos ver que tenemos 3 funciones, generando así 3 vistas, también hemos agrupado el código HttpResponse en una variable llamada html y así podemos usar cualquier código python para crear vistas y procedimientos.

Tambien tenemos los enlaces, los enlaces usamos “./” para referirnos a el mismo directorio, mas adelante veremos otro tipo de enlaces mejor adaptados.

Archivo vistas2.py

Ahora el siguiente archivo es vistas2.py que es muy similar al vistas.py solo que las funciones se llaman diferentes, hay una restricción aquí que aunque las funciones se llamen igual en vistas.py y vistas2.py al incuirlo en el archivo urls.py les tenemos que poner rutas diferentes a cada función.

from django.http import HttpResponse

def pagina4(request):
	html = "<h1>Pagina 4!</h1>"
	html+= "<a href='./pagina3'>Ir a pagina 3</a><br>";
	html+= "<a href='./pagina4'>Ir a pagina 4</a><br>";
	html+= "<a href='./pagina5'>Ir a pagina 5</a><br>";
	html+= "<a href='./pagina6'>Ir a pagina 6</a>";
	return HttpResponse(html)


def pagina5(request):
	html = "<h1>Pagina 5!</h1>"
	html+= "<a href='./pagina4'>Ir a pagina 4</a><br>";
	html+= "<a href='./pagina5'>Ir a pagina 5</a><br>";
	html+= "<a href='./pagina6'>Ir a pagina 6</a>";
	return HttpResponse(html)

def pagina6(request):
	html = "<h1>Pagina 6!</h1>"
	html+= "<a href='./pagina4'>Ir a pagina 4</a><br>";
	html+= "<a href='./pagina5'>Ir a pagina 5</a><br>";
	html+= "<a href='./pagina6'>Ir a pagina 6</a>";
	return HttpResponse(html)

Y con esto ya tenemos nuestras vistas creadas.

Archivo urls.py

Ahora vamos con el archivo urls.py en donde vamos a registrar las urls para poder visualizarlas y navegar entre ellas.

from django.contrib import admin
from django.urls import path
from . import vistas
from . import vistas2

urlpatterns = [
	path("proyecto1/", vistas.index, name="index"),
	path("proyecto1/pagina2", vistas.pagina2, name="pagina2"),
	path("proyecto1/pagina3", vistas.pagina3, name="pagina3"),
	path("proyecto1/pagina4", vistas2.pagina4, name="pagina4"),
	path("proyecto1/pagina5", vistas2.pagina5, name="pagina5"),
	path("proyecto1/pagina6", vistas2.pagina6, name="pagina6"),
]

Así debe quedar el archivo urls.py después de agregar todas nuestras vistas.

En las lineas 3 y 4 es importante agregar los imports con los nombres de nuestros archivos de vistas y en los url patterns debemos agregar cada ruta con el nombre de archivo de vistas “punto” la función a la que debe ejecutar esa ruta, por ultimo el name/nombre identificador.

Ahora solo nos falta ejecutar el servidor de Django.

cd /Users/evilnapsis/python/proyecto1/
python manage.py runserver

Y visualizar en el navegador usando la siguiente URL.

http://127.0.0.1:8000/

En el siguiente articulo veremos el uso de templates para crear paginas web mas llamativas.

Leave a comment