Creación de una web de empresa con Django (Parte 1)

  • por javier
  • 22 de Marzo de 2023

Introducción

Django es un framework para aplicaciones web en lenguaje de programación Python. El principio DRY (Dont Repeat Yourself) es una de las bases de dicho framework y consiste en no repetir código similar en ninguna de las partes de ningún proyecto. Django provee una potencia sin igual en el desarrollo web y se está abriendo mercado a pasos agigantados. Es muy común ver como muchas startups se programan con éste framework. Su potencia radica en que con poco código, podremos hacer muchas cosas comparado, por ejemplo con muchos frameworks php y es bastante rápido. Además no carga demasiado la máquina. Su desempeño es superior a PHP, en mi opinión.

Las malas noticias son, como sabeis todos, el soporte a Django y Python en hostings, pero eso no quita que existan soluciones profesionales en la nube como por ejemplo Amazón EC2 o Heroku, que podrán cubrir nuestras necesidades sin ningún problema. La curva de aprendizaje es algo fuerte, sobre todo al principio, pero valen la pena los beneficios que se pueden obtener cuando vas dominándolo posteriormente.

Como muestra, un botón: Ejemplo de aplicación en Django

En ésta pequeña introducción a Django, vamos a desarrollar una aplicación sencilla con Django 1.5.3. En éste caso, como sugerimos en el titulo del artículo, desarrollaremos la típica web empresarial con Django. Se presume que tenemos instalado correctamente Django en nuestro sistema, si no lo teneis instalado, podeis ver como hacerlo aqui. Una vez operativo, nos vamos al directorio donde queramos crear la aplicación y en una shell, ejecutamos los siguientes comandos:

Podemos ver como se nos ha creado el esqueleto de la aplicación que contiene:

  • empresa/manage.py -- Programa que nos permitirá gestionar distintas operaciones concernientes a nuestro proyecto.
  • directorio empresa/empresa: Contiene configuraciones de nuestra aplicación (settings.py) y definiciones de urls (urls.py) que contendrá nuestra página.

Lo primero que deberíamos hacer, es revisar y ajustar la configuración de nuestra aplicación: para ello, editamos settings.py

En éste archivo, lo primero que nos encontramos, es la definición de el/los administradores de la aplicación. Rellenamos los datos convenientemente y pasamos a la definición de la base de datos que utilizaremos. En éste caso usaré MySQL. Deberemos crear la base de datos y un usuario en MySQL para poder rellenar la configuración.

Y rellenamos la información acorde a lo que creamos en settings.py:

DATABASES = {
    ''default'': {
        ''ENGINE'': ''django.db.backends.mysql'', # Definimos mysql como base de datos
        ''NAME'': ''empresa'',                      # Nombre de base de datos mysql
        ''USER'': ''admemp'', # Usuario creado en MySQL
        ''PASSWORD'': ''empadm'', # Su password
        ''HOST'': ''127.0.0.1'',       # IP del host MySQL
        ''PORT'': ''3306'',            # Puerto de MySQL en HOST
    }
}

A continuación, ajustamos la zona horaria (TIME_ZONE) y (LANGUAGE_CODE). Luego, vamos a configurar, donde queremos ubicar los archivos estáticos (imágenes, hojas de estilo, archivos javascript, etc...). Para ello, vamos a ajustar los siguientes parámetros:

STATIC_URL = ''/st/''
STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, "st"),
)

Se entiende que "st" será un directorio que deberemos crear dentro del esqueleto de nuestra aplicación. En éste caso, iría en ./empresa/st/ Lógicamente, ahí deberemos crear también directorios que contengan nuestros archivos estáticos. En nuestro caso crearemos los siguientes:

La variable PROJECT_PATH la deberemos crear al inicio de settings.py, ya que necesitaremos utilizarla en varias partes de nuestro archivo de configuración. Esto se hace de la siguiente manera:

Al comienzo del archivo, tras el primer comentario deberemos insertar las siguientes líneas:

import os
PROJECT_PATH= os.path.realpath(os.path.dirname(__file__)+"/../")

La primera línea es la importación de la librería os, que utilizaremos en éste archivo. En la variable PROJECT_PATH, guardarmos el directorio de nuestra aplicación, con ruta absoluta, no relativa, necesaria para diferentes configuraciones dentro de settings.py.

Ahora vamos por las templates. Nuestro proyecto, utilizará varias plantillas o templates que contendrán HTML, parámetros y algo de código específico para plantillas de django, el cual no es python puro, si no un algo más rudimentario. Para definir el directorio donde guardaremos las templates, hacemos lo siguiente en settings.py.

TEMPLATE_DIRS = (
    PROJECT_PATH+''/templates/'',
)

También hay que crear éste directorio en ./empresa/templates/ Dentro de éste directorio, si tenemos un proyecto suficientemente grande, nos veremos obligados a crear dentro de "/templates/" otros directorios según nuestras necesidades, que alojarán nuestras plantillas, probablemente un directorio por cada aplicacion (una aplicación es un módulo de código de una funcionalidad especifica que reside en nuestro directorio de proyecto y se crea con manage.py

Ahora, vamos a crear una aplicación, donde ubicaremos el código de nuestra aplicación (views.py), los formularios de entrada de datos (forms.py) y la definición de nuestra base de datos (models.py). También estará ubicado un urls.py, que podremos utilizar complementando al existente anteriormente en ./empresa/empresa/ Para crear la aplicación haremos lo siguiente desde una shell:

Obviamente, lo único estrictamente necesario, es la línea donde creamos nuestra aplicacion, o sea, la primera. El resto es ilustrativo.

Vemos que forms.py lo tendremos que crear nosotros si queremos hacer uso de él, ya que Django no lo crea junto a la aplicacion. Por otro lado, vemos que nos ha creado un archivo más: tests.py, donde se codificarán los tests automatizados de nuestra aplicación.

Ahora tendremos que registrar nuestra nueva aplicacion en settings.py. Deberemos añadir "codigo", entre comillas a la lista de módulos que vienen por defecto definidos en la variable INSTALLED_APPS de settings.py

La definición en settings.py quedaría como sigue:

Django posee un servidor web propio para realizar pruebas al que podremos acceder de ésta manera:

En una shell haremos lo siguiente:

  • En nuestro navegador web, accederemos a la siguiente url : http://localhost:8000/ para ver ésto:

Hasta aquí la primera parte de ésta serie de artículos sobre Django. Cualquier comentario, duda o lo que sea: comentario. Muchas Gracias por la lectura y espero que os guste Django y el artículo. Saludos!

blog comments powered by Disqus

Creación de una web de empresa con Django (Parte 2)

  • por javier
  • 22 de Marzo de 2023

En el anterior artículo, vimos como configurar correctamente Django antes de meternos a programar nada. En éste capítulo veremos como crear una aplicacion sencilla con Django. Algo muy básico. Se trata de una web con la siguiente estructura:

  • Servicios. Servicios prestados por la empresa
  • Productos. Productos que ofrece
  • Quienes Somos. Datos sobre la empresa
  • Contacto. Formulario de contacto de la empresa

Creación de una web de empresa con Django (Parte 3)

  • por javier
  • 22 de Marzo de 2023

Hola de nuevo, aquí estamos con la tercera y última parte de nuestro pequeño "howto" ejemplo de Django. Si no entendeis algo, es normal si no habeis consultado el manual de Django previamente. Se necesita una base de Django para entender el artículo. Me habría gustado encontrar algo así cuando comencé mis andanzas con Django, por eso lo escribí. El manual de Django lo podeis consultar aqui: https://docs.djangoproject.com/en/1.5/ Hay hasta un .pdf que podeis descargar para más fácil consulta.

Update cookies preferences