< Volver al inicio

Lab 2: Creando tu primera aplicación Django I

El objetivo del presente laboratorio es guiar al estudiante en la creación de una aplicación web simple para una empresa de e-commerce.

Consistirá de dos partes:

Asumiendo que se tiene Django instalado, verificamos la version utilizando el siguiente comando desde el programa terminal / command prompt / powershell dependiendo de que sistema operativo uses:

python -m django version

Si todo esta bien deberías ver la versión de Django instalada en tu sistema. Si no, te aparecerá el error “No module named django”.

Creación del proyecto

Django tiene un comando que permite generar automaticamente todos los archivos iniciales necesarios para empezar a desarrollar nuestra aplicación web (Configuración de base de datos, ajustes de servidor, entre otros).

Desde la linea de comandos, colócate en la carpeta donde deseas crear tu proyecto y utiliza el comando:

django-admin startproject linioexp

Esto creará una carpeta llamada linioexp, veamos su contenido:

linioexp/
    manage.py
    linioexp/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

Estos archivos son:

El servidor de desarrollo

Desde el terminal, entraremos a la carpeta del proyecto en django que acabamos de crear. Esto lo haremos a través del comando cd que significa ‘change directory’

cd linioexp

Para verificar si el proyecto funciona bien, nos colocamos en la carpeta raiz linioexp y utilizamos el siguiente comando:

python manage.py runserver

Verás el siguiente mensaje en la linea de comandos:

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

August 24, 2020 - 15:50:53
Django version 3.1, using settings 'linioexp.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Nota No te preocupes por el mensaje de la migración de la base de datos. Lo solucionaremos más adelante.

Ya has iniciado tu servidor de desarrollo Django, este te permitirá ver rápidamente lo cambios y actualizaciones que hagas en tu aplicación. Sin embargo, para que esté disponible públicamente en internet hay que realizar otros ajustes que veremos un próximo laboratorio.

Si entras a http://127.0.0.1:8000/ desde tu navegador. Verás una página de bienvenida con un cohete. ¡Todo salió bien!

Actualización automática de runserver Cada vez que realices un cambio en tu código automáticamente se reiniciará el servidor para que puedas visualizarlo, no es necesario que lo reinicies manualmente.

Creamos nuestra primera aplicación

Con el proyecto ya configurado, ahora podemos empezar a desarrollar nuestra página.

Django tiene un comando para crear automáticamente aplicaciones dentro de nuestros proyectos. Las aplicaciones sirven para organizar mejor diferentes funcionalidades de nuestro proyecto, sin embargo, para un ejemplo simple solo necesitamos una aplicación.

Para crearla debemos colocarlos en la carpeta raíz de nuestro proyecto y ejecutar el comando:

python manage.py startapp main

Esto creará la siguiente estructura de carpetas:

main/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

Implementando nuestra primera vista

Debemos abrir el archivo main/views.py y colocar el siguiente código:

from django.http import HttpResponse

def home(request):
  return HttpResponse("Hola Mundo. Te encuentras en la página de inicio del Linio Express")

Esta es la vista más simple en Django. Para poder ingresar a esta es necesario relacionarla con una URL.

Para esto debemos crear una un archivo urls.py dentro de la carpeta main. Luego, incluimos el código:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

Luego debemos incluir las URLs de main en las URLs del proyecto principal desde linioexp/urls.py. Para esto nos ayudamos de la función include(), importada desde django.urls:

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

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

< Anterior lab
Siguiente lab >