En esta entrada vamos a ver cómo podemos crear lo que en la informática se conoce como “Hola mundo” en Django qué significa dar los primeros pasos en cualquier lenguaje de programación, framework etc y con esto conocer con un sencillo ejemplo lo básico de esta herramienta.
En esta entrada vamos a conocer cómo podemos trabajar con dos capas de nuestro MTV de manera básica, que viene siendo la capa de la Vista y el Template, además de esto de otra capa que viene siendo la que nos permite el ruteo que es una capa intermedia.
Creando nuestra primera función en la vista de nuestra aplicación en Django
Para hacer esto, recuerda que previamente tienes que tener instalado y creado tu proyecto en Django y también creada tu aplicación, cosa que ya hicimos anteriormente en anteriores entradas.
Vamos a ir a:
tuProyecto -> tuAplicación
Que viene siendo dentro de tu proyecto y luego dentro de la aplicación que creamos en la entrada anterior:
firstProject/firstApp/views.py
Aquí tenemos todo lo necesario para arrancar la aplicación web de tipo Hola Mundo con Python.
Una aplicación en Django es simplemente un paquete de Python que sigue un determinado esquema de archivos y estructura base que podemos emplear para nuestros proyectos web en Django.
Vamos a abrir el archivo de la vista llamado views.py que esta dentro de nuestra aplicación firstApp.
Como ves es un archivo completamente vacío y en el cual le podemos definir distintas estructuras a nivel de clases y/o funciones para poder desarrollar alguna funcionalidad (como un listado, procesar un formulario, enviar un email, etc) y que este pueda ser consumido por nuestro usuario mediante una ruta; vamos a ir por lo más fácil que sería crear una función que puede llevar cualquier nombre, cualquier nombre permitido por Python claro está:
from django.http import HttpResponse def index(request): return HttpResponse("Hola Mundo")
Como puedes ver, no tenemos nada demasiado complicado; simplemente una función llamada index, aunque puedes colocarle el nombre que más te convenga, y está retornando algo, este algo tiene que ser una respuesta HTTP válida ya que recuerda que estamos desarrollando una app web por lo tanto todo lo que tenemos que responder es una respuesta HTTP. Empleamos la clase llamada HttpResponse para crear la respuesta que solamente va a hacer un ejemplo completo de Hola Mundo.
Crear ruteo
Ahora, ya tenemos una función de ejemplo que está lista par ser consumida mediante nuestro navegador, específicamente mediante una URL o ruta; así que ahora tenemos que explicar una nueva capa que será la que nos permitirá crear este ruteo.
Vamos a crear la ruta para que pueda ser consumida mediante nuestro navegador específicamente mediante una ruta o URL; para eso vamos a crear un archivo llamado urls.py
al archivo de urls.py
DENTRO de nuestra aplicación:
firstProject/firstApp/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
Si has trabajado en otros frameworks modernos como Laravel o CodeIgniter 4, esto te resultará muy común; primero estamos importando una de nuestras capas representada por el views.py y luego o estamos creando un array de rutas, que de momento tenemos solamente una ruta por lo tanto es un array de una posición; en la cual estamos indicando el path, luego la función que se encarga de resolver el path y le estamos dando un nombre que es completamente opcional y en otra entrada veremos para qué nos sirve definir un nombre a una ruta.
Registrar el archivo de rutas de nuestra aplicación en nuestro proyecto
Ahora tenemos que ir al módulo que se encuentra dentro de nuestro proyecto que tiene el mismo nombre que nuestro proyecto y dicho archivo se llama urls.py y tenemos que registrar el archivo de rutas que creamos anteriormente para nuestra aplicación.
from firstApp import urls urlpatterns = [ path('fisrtApp/', include('firstApp.urls')), ]
Ver nuestro Hola Mundo en el navegador
Para poder finalmente todo nuestro trabajo tenemos que ejecutar el siguiente comando a la altura de tu proyecto (donde se encuentra un archivo llamado manage.py
):
python manage.py runserver
Y con esto, si vamos a:
http://127.0.0.1:8000/fisrtApp/
Veremos el Hola Mundo con el siguiente resultado:
Conclusiones
Como puedes ver, se trata de nuestra aplicación completamente funcional y lista para hacer algo más interesante que la mostrada en este ejemplo, cosa que iremos haciendo en posteriores entradas.
Recuerda que si te quedastes con ganas de más, cuentas con mi curso en Django 3 que puedes obtener más información en este blog en los enlaces del header.
Hola Mundo
En este apartado, vamos a crear un Hola Mundo, para nuestra aplicación; comencemos creando la siguiente función que es la que vamos a consumir mediante el navegador mediante HTTP:
comments\views.py
from django.http import HttpResponse
def home_page_view(request):
return HttpResponse("Hello World!")
Y registramos la ruta a nivel de la aplicación:
comments\urls.py
from .views import home_page_view
urlpatterns = [
path("", home_page_view, name="home"),
]
Y registramos la ruta a nivel del proyecto:
mystore\urls.py
from django.contrib import admin
from django.urls import path, include # new
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("comments.urls")), # new
]
Y también la aplicación:
mystore\settings.py
INSTALLED_APPS = [
***
"comments", # new
]
El detalle de lo que hicimos lo iremos evaluando en las siguientes secciones.
Ejecutar el proyecto en un servidor
Ya con un proyecto nuevo creado, lo siguiente que necesitamos es ir visualizando lo elaborado en el navegador; para eso, necesitamos levantar el servidor de desarrollo; como comentamos antes, mediante la línea de comandos, tenemos un comando para levantar el servidor de desarrollo:
$ python manage.py runserver
Y tenemos un resultado como el siguiente:
March 17, 2022 - 16:11:19
Django version 5.0.3, using settings 'mystore.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Por defecto, Django emplea un servidor de tipo WSGI de las siglas Interfaz de Pasarela del Servidor Web, o Web Server Gateway Interface en inglés (WSGI), es una interfaz estándar entre el servidor web y aplicaciones web escritas en Python que en pocas palabras, permite la comunicación con nuestra aplicación en Django.
Finalmente, si vamos a la URL señalada anteriormente, veremos:
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter