sábado, 6 de abril de 2024

Hello World en django

Creación de las vistas

Las vistas se crean mediante la creación de unas funciones.

Iremos a la carpeta de nuestra aplicación que se llama myapp y dentro de ella encontraremos el archivo views.py.

En el archivo views.py crearemos nuestra primera función que retornará un mensaje al cliente (al navegador).

La función puede llamarse como queramos, en nuestro caso se llamará hello.

La función recibirá un parámetro que nos lo pasará django y se llamará request.

La función retornará una respuesta al cliente de tipo HTTP. Será un texto que el navegador va a recibir.

Para enviar la respuesta de tipo HTTP tendremos que importar de la librería django.http el método HttpResponse.

De momento quitaremos la otra linéa que por defecto nos muestra django que es from django.shortcuts import render que posteriormente ya utizaremos, pero que ahora quitamos.

El código quedaría así:

from django.http import HttpResponse

# Create your views here.
def hello(request):
    return HttpResponse("Hello World")

La ruta

Ahora necesitamos indicar en que ruta se ha de mostrar el resultado de nuestra función. Las rutas están en el archivo urls.py de la carpeta del proyecto mysite

Por defecto, al inicial django el archivo urls.py viene así:

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

urlpatterns = [
    path('admin/', admin.site.urls),
]

Inicialmente ya aparece la ruta admin/ y ahora añadiremos la nuestra.

Nuestra ruta se añadirá indicando el paht como vacío (comillas comillas) '' lo que indica que se trata de la ruta principal o raiz del proyecto.

Luego pondremos la función hello, pero para que funcione tenemos que importarla con la línea from myapp.views import hello que indica dónde se encuentra esa función y cómo se llama. La función se llama hello y está situada en myapp.views

Finalmente el código queda así:

from django.contrib import admin
from django.urls import path
from myapp.views import hello

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', hello),
]

Grabamos archivos y lanzamos el servidos o actualizamos la página localhost si ya estaba lanzado el servidor.


También es posible escribir en código HTML dentro de la respuesta. Por ejemplo, poniendo una etiqueta h1 y en cursiva.

from django.http import HttpResponse

# Create your views here.
def hello(request):
    return HttpResponse("<h1><i>Hello World</i></h1>")

Recargamos la página y vemos el resultado.


Otra forma de importar la vista que proporciona la función hello consiste en importar todas las vistas con from myapp import views y luego indicar que la función hello pertenece a views poniéndolo así views.hello

El código en el archivo urls.py quedaría así.

from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.hello),
]

Añadiendo una nueva ruta

Vamos a añadir una nueva ruta denominada about. Para ello necesitamos modificar los archivos myapp/views.py y mysite/urls.py


Veamos estos archivos.

myapp/views.py

from django.http import HttpResponse

# Create your views here.
def hello(request):
    return HttpResponse("<h1>Hello World</h1>")

def about(request):
    return HttpResponse("Esta es la página de about")

mysite/urls.py

from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.hello),
    path('about/', views.about),

La ruta la hemos llamado "about/" y esta ruta se visita desde "http://127.0.0.1:8000/about/".

Actualizamos la página y pulsamos en el navegador Chrome F12. Así, en "Elementos" veremos el código de nuestra página.

No hay comentarios:

Publicar un comentario