Búsqueda de sitios web

Instalación y configuración de Django Web Framework con entornos virtuales en CentOS/Debian - Parte 1


“Este artículo ha sido revisado y actualizado con la última versión de Django – mayo de 2016”

Hace unos 20 años, cuando la World Wide Web estaba todavía en su infancia, tener un sitio web personal o empresarial era casi un lujo poco común. Con el posterior desarrollo de varias tecnologías web y la introducción de contenido dinámico proporcionado por la combinación de programas del lado del servidor y bases de datos, las empresas ya no podían contentarse con tener un sitio web estático.

Así, las aplicaciones web se convirtieron en una realidad: programas en el sentido completo de la palabra que se ejecutan en un servidor web y son accesibles a través de un navegador web.

Para hacer que el desarrollo sea más fácil y efectivo, se diseñaron marcos web para ayudar a los programadores en sus esfuerzos por crear aplicaciones. En resumen, un marco web se encarga de las funcionalidades básicas comunes en el proceso de desarrollo, como la gestión de sesiones de usuario, la interacción con bases de datos y la buena práctica de mantener la lógica empresarial separada de la lógica de visualización, por nombrar algunos ejemplos.

En esta serie de tres artículos sobre Django, le presentaremos Django, un popular marco web basado en Python. Por esa razón, se sugiere al menos un poco de familiaridad con este lenguaje de programación, pero si tiene poca o ninguna experiencia con él, también lo guiaremos a través de los conceptos básicos.

Instalación de Django en servidores CentOS y Debian

Aunque puedes instalar Django tanto desde Debian (v1.7.7: el soporte extendido se suspenderá en diciembre de 2015) como desde Fedora EPEL (v1.6.11: el soporte extendido se suspendió en abril de 2015), la versión disponible no es la última versión estable de LTS (soporte a largo plazo) (v1.8.13, a mayo de 2016).

En este tutorial te mostraremos cómo instalar Django v1.8.13 ya que su soporte extendido está garantizado hasta al menos abril de 2018.

El método recomendado para instalar Django es a través de pip, una herramienta popular para administrar paquetes de Python. Además, para crear entornos Python aislados y evitar conflictos entre proyectos que puedan requerir diferentes versiones de dependencias de software, se recomienda encarecidamente el uso de entornos virtuales.

Las herramientas que se utilizan para crear y administrar entornos virtuales de Python se denominan virtualenv.

Siga estos pasos para realizar la instalación:

1. Para distribuciones basadas en Fedora (excepto en el propio Fedora), habilite primero el repositorio EPEL:

yum update && yum install epel-release

2. Instale pip y virtualenv:

Distribuciones basadas en Fedora:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian y derivados:
aptitude update && aptitude install python-pip virtualenv

3. Cree un directorio para almacenar su proyecto inicial.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Cree y active un entorno virtual:

virtualenv myfirstdjangoenv

El comando anterior crea un montón de archivos y subdirectorios en ~/myfirstdjangoenv y básicamente instala una copia local de Python y pip dentro del directorio de trabajo actual. . A continuación, debemos activar el entorno virtual que acabamos de crear:

source myfirstdjangoenv/bin/activate

5. Observe cómo cambia el símbolo del sistema después del último comando. Ahora es el momento de instalar Django:

Tenga en cuenta que la siguiente captura de pantalla se tomó durante una versión anterior de este tutorial, pero el resultado esperado es el mismo al instalar Django 1.8.13 ):


pip install Django==1.8.13

Puede comprobar la versión de Django iniciando un shell de Python desde su directorio de trabajo actual:

python
>>> import django
>>> print(django.get_version())

(Nuevamente, el comando anterior debería devolver 1.8.13 al verificar la versión actual de Django).

Para salir del indicador de Python, escriba:

>>> exit() 

y presione Entrar. A continuación, apague el entorno virtual:

deactivate

Tenga en cuenta que mientras el entorno virtual permanezca desactivado, Django no estará disponible:

Cómo crear un primer proyecto en Django

Para crear un proyecto dentro del entorno virtual que creamos anteriormente, es necesario activarlo:

source myfirstdjangoenv/bin/activate

A continuación, el marco creará toda la estructura de directorios para almacenar su proyecto. Para hacer esto, necesitarás ejecutar.

django-admin startproject myfirstdjangoproject

El comando anterior creará un directorio llamado myfirstdjangoproject dentro de su directorio de trabajo actual.

donde encontrarás un archivo llamado manage.py (una utilidad que te ayudará a administrar tu proyecto más adelante) y otro subdirectorio (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Este último subdirectorio servirá como contenedor para los archivos del proyecto.

Si bien el resto de los archivos tendrán mucho sentido después de haber revisado algo de Python para comenzar a escribir una aplicación web real, vale la pena tomar nota de los archivos clave que se encontrarán dentro del directorio contenedor de un proyecto:

  1. myfirstdjangoproject/__init__.py: este archivo vacío le dice a Python que este directorio debe considerarse un paquete de Python.
  2. myfirstdjangoproject/settings.py: configuraciones específicas para este proyecto Django.
  3. myfirstdjangoproject/urls.py: un TOC (tabla de contenido) de su sitio con tecnología Django.
  4. myfirstdjangoproject/wsgi.py: un punto de entrada para servidores web compatibles con WSGI para servir a su proyecto.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Además, Django tiene un servidor web integrado liviano (escrito en Python similar a Python SimpleHTTP, ¿qué más?) que puede usarse para probar sus aplicaciones durante el desarrollo. proceso sin tener que lidiar con la tarea de configurar un servidor web en esta etapa particular.

Sin embargo, debe saber que esto no es adecuado para un entorno de producción, sólo para desarrollo. Para iniciar su proyecto recién creado, cambie su directorio de trabajo actual al directorio contenedor de su proyecto (~/myfirstdjangoenv/myfirstdjangoproject) y ejecute:

python manage.py runserver 0.0.0.0:8000

Si se encuentra con el siguiente error:

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

Haz lo que dice:

python manage.py migrate

y luego iniciar el servidor nuevamente:

python manage.py runserver 0.0.0.0:8000

Cubriremos el concepto de migraciones en los próximos artículos de esta serie, por lo que puedes ignorar el mensaje de error por el momento.

En cualquier caso, puede cambiar el puerto predeterminado donde escuchará el servidor web integrado. Al usar 0.0.0.0 como interfaz de red para escuchar, permitimos que otras computadoras en la misma red accedan a la interfaz de usuario del proyecto (si usa 127.0.0.1 en su lugar, solo podrá acceder a la interfaz de usuario desde localhost).

También puedes cambiar el puerto a otro de tu elección, pero también deberás asegurarte de que el tráfico a través de dicho puerto esté permitido a través de tu firewall:

firewall-cmd --add-port=8000/tcp
firewall-cmd --permanent --add-port=8000/tcp

Por supuesto, no hace falta decir que necesitarás actualizar el puerto permitido si eliges usar uno diferente al iniciar el servidor web liviano.

Deberías ver el siguiente resultado en tu terminal:

python manage.py runserver 0.0.0.0:8000

En este punto, puede abrir su navegador web favorito y navegar hasta la dirección IP de la máquina donde instaló Django seguida del número de puerto. En mi caso es una caja Debian Jessie con IP 192.168.0.25 y escuchando en el puerto 8000:

http://192.168.0.25:8000

Si bien es fantástico que hayamos podido completar la configuración inicial de un proyecto, todavía queda mucho trabajo por hacer, como se indica en el mensaje anterior.

Resumen

En esta guía hemos explicado cómo instalar y configurar un entorno virtual para Django, un framework web versátil de código abierto basado en Python.

Independientemente de si es un desarrollador de aplicaciones o un administrador de sistemas, querrá marcar este artículo y el resto de esta serie porque es probable que en algún momento u otro necesite considerar la necesidad de dicha herramienta para sus tareas diarias.

En los siguientes artículos de esta serie discutiremos cómo aprovechar lo que ya hemos logrado para crear una aplicación web simple pero funcional usando Django y Python.

Como siempre, no dude en enviarnos una nota si tiene preguntas sobre este artículo o sugerencias para mejorar. ¡Esperamos con interés escuchar de usted!