Creando nuestro primer ejemplo completo de hola mundo en Django
Índice de contenido
- ¿Qué es una aplicación en Django y en qué se diferencia de un proyecto?
- Proyectos vs aplicaciones - ¿Cuál es la diferencia entre un proyecto y una aplicación?
- Preparando el entorno de trabajo en Django
- Ejecutar el proyecto en un servidor
- Creando nuestra primera aplicación con startapp
- Registrando la aplicación en el proyecto
- Estructura de la aplicación
- Creando nuestra primera función en la vista “Hola Mundo” en Django
- Configurando las rutas (URLs) para nuestra vista
- Ver nuestro Hola Mundo en el navegador
- Conclusión
- Preguntas frecuentes
Cuando empezamos a trabajar con cualquier tecnología como Django, uno de los momentos más emocionantes es ver aparecer el clásico mensaje de “Hola Mundo” en el navegador. Es el punto exacto donde te das cuenta de que tu entorno funciona, ya que sabemos ¿Qué es Django y para qué sirve? vamos al siguiente punto que es hacer un Hola Mundo.
En esta entrada vamos a ver cómo crear nuestra primera aplicación en Django, entender qué diferencia hay con un proyecto y cómo conectar todo para ver resultados en el navegador.
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.
¿Qué es una aplicación en Django y en qué se diferencia de un proyecto?
Una de las primeras cosas que tenemos que entender cuando comenzamos en Django es la diferencia entre proyecto y aplicación; ya que, es el único framework cuya estructura es organizado mediante proyectos y aplicaciones.
En pocas palabras:
- Un proyecto es el contenedor global que define la configuración general de tu sitio.
- Una aplicación es una pieza funcional dentro de ese proyecto; puede encargarse de manejar usuarios, un blog, una API, etc.
Si lo comparamos con otros frameworks como Laravel o CodeIgniter: el proyecto sería el sitio completo y las aplicaciones serían los módulos que lo componen.
En Django puedes tener muchas apps dentro de un mismo proyecto, cada una independiente y reutilizable.
Un proyecto en Django consta de una o muchas aplicaciones que es lo que nosotros vamos a crear en este punto; vamos a crear al menos una aplicación para poder hacer algo interesante en nuestro proyecto recién creado.
Proyectos vs aplicaciones - ¿Cuál es la diferencia entre un proyecto y una aplicación?
Una aplicación es una aplicación web que hace algo, por ejemplo, un sistema de registro web, una base de datos de registros públicos, una Api Rest, una app de venta de algo, etc.
Un proyecto es una colección de configuraciones y aplicaciones para un sitio web en particular. Un proyecto puede contener múltiples aplicaciones. Una aplicación puede estar en múltiples proyectos.
El uso de Django para crear aplicaciones, está fuertemente ligado al concepto modularización, y por ende, podemos crear múltiples aplicaciones pequeñas que realizan tareas en particular, para que en conjunto, podemos tener la aplicación final que nosotros queremos; por ejemplo, para una aplicación tipo blog:
- Una aplicación para el listado y detalle de los posts.
- Una aplicación para manejar la autenticación, registro y derivados.
- Una aplicación para manejar los contactos, así como manejar comentarios de post y demás.
- Una aplicación para manejar una api rest.
- Una aplicación para manejar información base, como de contacto y "acerca de".
Preparando el entorno de trabajo en Django
Antes de crear la aplicación, necesitamos tener Django instalado y un proyecto base.
Desde la terminal, ejecutamos:
$ django-admin startproject firstProjectEsto crea una estructura como esta:
firstProject/
manage.py
firstProject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.pyCada archivo tiene su función bien clara. Por ejemplo:
- manage.py: Una utilidad de la línea de comandos que le permite interactuar con este proyecto Django de diferentes formas y puedes obtener más información en la documentación oficial.
- __init__.py: Un archivo vacío que le indica a Python que este directorio debería ser considerado como un paquete Python.
- settings.py: Ajustes/configuración para este proyecto Django; nos define un conjunto de configuraciones que podemos aplicar sobre el proyecto de manera global.
- urls.py: Las declaraciones URL para este proyecto Django; desde aquí podemos (por ejemplo) cargar más archivos de URLs de otras aplicaciones o dependencias.
- asgi.py: Archivo de entrada para trabajar con servidores ASGI y realizar el deploy.
- wsgi.py: Archivo de entrada para trabajar con servidores WSGI y realizar el deploy.
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 runserverY tenemos un resultado como el siguiente:
Nov 17, 2025 - 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:
Obviamente, todavía no hemos implementado nada, pero, es por lo menos curioso, ademas de necesario saber si el proyecto esta funcional para poder seguir avanzando en la creación de nuestra primera aplicación.
Creando nuestra primera aplicación con startapp
Dentro del proyecto, creamos la aplicación:
$ python manage.py startapp firstAppEsto genera una estructura nueva:
firstApp/
__init__.py
admin.py
apps.py
migrations/
models.py
tests.py
views.py
Una aplicación en Django no es más que un paquete de Python con un esquema estándar.
Dentro de esta carpeta iremos colocando la lógica de negocio, las vistas y las plantillas.
Registrando la aplicación en el proyecto
Como hablamos anteriormente, básicamente el proyecto viene siendo el elemento global y que permite contener una o muchas aplicaciones, como la llamada firstProyect que creamos anteriormente; entonces, para poder emplear la aplicación a lo largo de nuestro proyecto, tenemos que registrar la aplicación dentro de nuestro proyecto; para esto, tenemos que abrir el archivo llamado settings.py y ubicar la opción llamada INSTALLED_APPS:
Abrimos el archivo settings.py del proyecto y buscamos la lista INSTALLED_APPS.
Ahí añadimos nuestra aplicación:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'firstApp', # nuestra app
]Una vez registrada, ya podemos usarla dentro del proyecto.
Estructura de la aplicación
Si entramos dentro de la carpeta que creamos anteriormente cuyo nombre es de firstProyect (que es nuestra aplicación en Django y que no es más que un módulo en Python):
- __init__.py: Archivo especial de Python que indica que esta carpeta es un módulo.
- admin.py: Archivo de Django en la cual podemos registrar modelos para emplearlos en una aplicación que nos ofrece Django para realizar la gestión de datos.
- apps.py: Archivo de configuración de la aplicación.
- migrations/: Carpeta desde la cual podemos gestionar las migraciones.
- models.py: Archivo desde el cual podemos crear los modelos de la aplicación y esta es una de las capas de nuestro MTV.
- tests.py: Archivo para realizar pruebas de la aplicación.
- views.py: Archivo para crear las funciones o vistas para hacer la lógica y es la capa de la lógica de negocio que se encarga de conectar la capa del modelo con la del template; esta viene siendo la capa de la vista o -parte- el controlador en nuestro MVC.
Por supuesto, estos son los archivos y carpetas iniciales que podemos extender para agregar más configuraciones como formularios, urls, etc.
Creando nuestra primera función en la vista “Hola Mundo” 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.
Vamos a ir a:
firstProject -> firstApp
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.
Dentro del archivo views.py de nuestra aplicación escribimos lo siguiente:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hola Mundo")Con el código anterior, podemos ver lo simple y elegante que es Django: una función, una respuesta HTTP, y listo.
La clase HttpResponse se encarga de devolver un contenido que el navegador puede interpretar.
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.
Configurando las rutas (URLs) para nuestra vista
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:
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.
Después, registramos ese archivo en las rutas principales del proyecto (firstProject/urls.py):
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('firstApp/', 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 runserverY con esto, si vamos a:
http://127.0.0.1:8000/fisrtApp/
Django levantará su servidor de desarrollo y te mostrará una dirección local, normalmente http://127.0.0.1:8000/.
Si visitas http://127.0.0.1:8000/firstApp/, verás algo como esto:

Conclusión
En este primer ejercicio aprendimos el flujo completo para levantar una aplicación Django:
- Crear un proyecto base (startproject)
- Crear una aplicación dentro del proyecto (startapp)
- Registrar la aplicación en settings.py
- Crear una vista (views.py)
- Configurar las rutas (urls.py)
- Ejecutar el servidor y probar en el navegador
Con esto ya tenemos una app completamente funcional que responde a una petición HTTP.
A partir de aquí el camino sigue con modelos, templates y formularios, pero lo importante es que ya comprendiste cómo se conectan las piezas básicas de Django.
Preguntas frecuentes
¿Cuál es la diferencia entre un proyecto y una aplicación en Django?
Un proyecto es el contenedor general; una aplicación es una parte funcional dentro de él.
¿Dónde se registran las aplicaciones?
En el archivo settings.py, dentro de la lista INSTALLED_APPS.
¿Por qué no se muestra mi “Hola Mundo”?
Asegúrate de haber creado y enlazado correctamente el archivo urls.py tanto en la aplicación como en el proyecto.
¿Puedo tener varias aplicaciones en un mismo proyecto?
Sí, y es una de las grandes ventajas de Django: puedes modular tu proyecto en tantas apps como necesites.
El siguiente paso, es conocer como emplear los modelos en Django.
Acepto recibir anuncios de interes sobre este Blog.
Vamos a crear un sencillo ejemplo para conocer cómo funciona el flujo básico de una aplicación de Django que en pocas palabras el Hola Mundo en Python web.