Tutorial

Cómo instalar el framework web Django en Ubuntu 18.04

UbuntuDjangoPython FrameworksUbuntu 18.04

Introducción

Django es un completo framework web de Python orientado al desarrollo de páginas web y aplicaciones dinámicas. Con Django, puede crear rápidamente aplicaciones web de Python y dejar que el framework realice una buena parte del trabajo pesado.

A través de esta guía, aprenderá a hacer funcionar Django en un servidor Ubuntu 18.04. Tras la instalación, iniciará un nuevo proyecto para usarlo como base de su sitio.

Diferentes métodos

Según sus necesidades y la forma en que desee configurar su entorno de desarrollo, hay diferentes maneras de instalar Django. Ofrecen diferentes ventajas y puede haber un método que se adecue mejor que otros a su situación concreta.

Entre algunos de estos métodos diferentes se incluyen los siguientes:

  • Instalación general desde paquetes: los repositorios oficiales de Ubuntu contienen paquetes de Django que se pueden instalar con el gestor convencional de paquetes apt. Este método es sencillo, aunque no tan flexible como otros. Además, es posible que la versión que se incluye en los repositorios no esté actualizada como las versiones oficiales disponibles del proyecto.
  • Instalación con pip en un entorno virtual: puede crear un entorno autónomo para sus proyectos utilizando herramientas como venv y virtualenv. Un entorno virtual le permite instalar Django en un directorio de proyecto sin afectar a todo el sistema, junto con otras personalizaciones y paquetes por proyecto. Suele ser el enfoque más práctico y recomendado para trabajar con Django.
  • Instalación de una versión de desarrollo con git: si quiere instalar la última versión de desarrollo en vez de la versión estable, puede adquirir el código en el repositorio de Git. Esto es necesario para acceder a las últimas características y correcciones, y se puede hacer dentro de su entorno virtual. Sin embargo, las versiones de desarrollo no ofrecen las mismas garantías de estabilidad que otras versiones más estables.

Requisitos previos

Antes de empezar, debe tener disponible un usuario no root con privilegios sudo en su servidor de Ubuntu 18.04. Para configurarlo, siga nuestra guía de configuración inicial para servidores de Ubuntu 18.04.

Instalación general desde paquetes

Si quiere instalar Django usando los repositorios de Ubuntu, el proceso es muy sencillo.

Primero, actualice su índice de paquete local con apt:

  • sudo apt update

Luego, verifique la versión de Python que instaló. Ubuntu 18.04 viene con Python 3.6 por defecto. Podrá verificarlo escribiendo lo siguiente:

  • python3 -V

Debería ver el siguiente resultado:

Output
Python 3.6.5

A continuación, instale Django:

  • sudo apt install python3-django

Puede comprobar que la instalación se haya completado de forma correcta escribiendo lo siguiente:

  • django-admin --version
Output
1.11.11

Esto significa que el software se instaló de forma correcta. Posiblemente también observe que la versión de Django no sea estable más reciente. Si desea obtener más información sobre cómo usar el software, continúe para aprender a crear un ejemplo de proyecto.

Instalación con pip en un entorno virtual

La forma más flexible de instalar Django en su sistema es hacerlo dentro de un entorno virtual. Le mostraremos cómo instalar Django en un entorno virtual que crearemos con el módulo venv, parte de la biblioteca estándar Python 3. Esta herramienta le permite crear entornos virtuales de Python e instalar paquetes de Python afectar al resto del sistema. De esta manera, puede seleccionar paquetes de Python por proyecto, independientemente de los conflictos con los requisitos de otros proyectos.

Empecemos actualizando el índice local de paquetes:

  • sudo apt update

Compruebe la versión de Python que instaló:

  • python3 -V
Output
Python 3.6.5

A continuación, instale pip desde los repositorios de Ubuntu:

  • sudo apt install python3-pip

Una vez instalado pip, puede usarlo para instalar el paquete venv:

  • sudo apt install python3-venv

Ahora, al iniciar un nuevo proyecto puede crear un entorno virtual para él. Empiece creándolo y moviéndolo a un nuevo directorio del proyecto:

  • mkdir ~/newproject
  • cd ~/newproject

A continuación, cree un entorno virtual dentro del directorio del proyecto usando el comando python que sea compatible con su versión de Python. Llamaremos a nuestro entorno virtual my_env, pero debería asignarle un nombre descriptivo:

  • python3.6 -m venv my_env

Con esto, se instalarán versiones independientes de Python y pip en una estructura de directorio aislada dentro del directorio de su proyecto. Se creará un directorio que llevará el nombre que seleccione y mantendrá la jerarquía de archivos donde se instalarán sus paquetes.

Para instalar paquetes en el entorno aislado, debe activarlo escribiendo lo siguiente:

  • source my_env/bin/activate

Su mensaje debería modificarse para que refleje su presencia actual en su entorno virtual. Tendrá un aspecto parecido al siguiente: (my_env)username@hostname:~/newproject$.

En su nuevo entorno, puede usar pip para instalar Django. Independientemente de su versión de Python, pip debería llamarse pip cuando esté en su entorno virtual. Tenga en cuenta además que *no *necesita usar sudo porque la instalación se realiza a nivel local:

  • pip install django

Puede verificar la instalación escribiendo lo siguiente:

  • django-admin --version
Output
2.1

Tenga en cuenta que su versión puede diferir de la que se muestra aquí.

Para salir de su entorno virtual, debe emitir el comando deactivate desde cualquier parte del sistema:

  • deactivate

Debería restablecerse la visualización convencional de su mensaje. Cuando desee trabajar de nuevo en su proyecto, vuelva a activar su entorno virtual regresando al directorio de su proyecto y activando lo siguiente:

  • cd ~/newproject
  • source my_env/bin/activate

Instalación de la versión de desarrollo con Git

Si necesita una versión de desarrollo de Django, puede descargarla e instalarla desde su repositorio de Git. Hagámoslo desde un entorno virtual.

Primero, actualice el índice local de paquetes:

  • sudo apt update

Compruebe la versión de Python que instaló:

  • python3 -V
Output
Python 3.6.5

A continuación, instale pip desde los repositorios oficiales:

  • sudo apt install python3-pip

Instale el paquete venv para crear su entorno virtual:

  • sudo apt install python3-venv

El siguiente paso es clonar el repositorio de Django. Entre las diferentes versiones, en este repositorio habrá características y correcciones de errores más actualizadas a expensas, posiblemente, de la estabilidad. Puede clonar el repositorio y disponer el duplicado en un directorio llamado ~/django-dev dentro de su directorio de inicio escribiendo lo siguiente:

  • git clone git://github.com/django/django ~/django-dev

Posiciónese en este directorio:

  • cd ~/django-dev

Cree un entorno virtual usando el comando python que sea compatible con su versión instalada de Python:

  • python3.6 -m venv my_env

Actívelo:

  • source my_env/bin/activate

A continuación, puede instalar el repositorio usando pip. La opción -e se instalará en el modo “editable”, lo cual es necesario al realizar la instalación desde el control de versión:

  • pip install -e ~/django-dev

Puede comprobar que la instalación se haya realizado de forma correcta escribiendo lo siguiente:

  • django-admin --version
Output
2.2.dev20180802155335

Una vez más, es posible que la versión que vea no coincida con la que se muestra aquí.

Ahora, contará con la versión más reciente de Django en su entorno virtual.

Creación de un ejemplo de proyecto

Con Django instalado, podrá empezar a crear su proyecto. Veremos cómo crear un proyecto y probarlo en su servidor de desarrollo usando un entorno virtual.

Primero, cree un directorio para su proyecto y posiciónese en él:

  • mkdir ~/django-test
  • cd ~/django-test

A continuación, cree su entorno virtual:

  • python3.6 -m venv my_env

Active el entorno:

  • source my_env/bin/activate

Instale Django:

  • pip install django

Para crear su proyecto, puede usar django-admin con el comando startproject . Llamaremos a nuestro proyecto djangoproject, pero puede usar un nombre diferente. startproject creará dentro de su directorio de trabajo actual un directorio que incluye lo siguiente:

  • Una secuencia de comandos de administración, manage.py, que puede usar para administrar varias tareas específicas de Django.
  • Un directorio (con el mismo nombre que el del proyecto) en el que se incluye el código real del proyecto.

Sin embargo, para evitar que haya demasiados directorios anidados, indicaremos a Django que disponga la secuencia de comandos de administración y el directorio interno en el directorio actual (véase el punto final):

  • django-admin startproject djangoproject .

Para migrar la base de datos (este ejemplo utiliza SQLite por defecto), vamos a usar el comando migrate con manage.py. Las migraciones aplican los cambios que ha hecho a sus modelos de Django en su esquema de base de datos.

Para migrar la base de datos, escriba lo siguiente:

  • python manage.py migrate

Verá un resultado como el siguiente:

Output
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK

Por último, vamos a crear un usuario administrativo para que pueda usar la interfaz de administración de Django. Haremos esto con el comando createsuperuser:

  • python manage.py createsuperuser

Se le solicitará un nombre de usuario, una dirección de correo electrónico y una contraseña para su usuario.

Modificación de ALLOWED_HOSTS en la configuración de Django

Para comprobar correctamente su aplicación, deberá modificar una de las directivas en la configuración de Django.

Abra el archivo de configuración escribiendo lo siguiente:

  • nano ~/django-test/djangoproject/settings.py

Dentro de este, localice la directiva ALLOWED_HOSTS. Esto define una lista blanca de direcciones o nombres de dominio que pueden utilizarse para la conexión con la instancia de Django. Una solicitud entrante con un encabezado Host que no esté en esta lista generará una excepción. Django necesita que configure esto para evitar una clase de vulnerabilidad de seguridad determinada.

Dentro de los corchetes, enumere las direcciones IP o los nombres de dominio que estén asociados a su servidor de Django. Cada elemento debería figurar entre comillas, y las entradas deben ir separadas por una coma. Si desea solicitudes de un dominio completo y cualquier subdominio, agregue un período al inicio de la entrada:

~/django-test/djangoproject/settings.py
. . .
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

Cuando termine, guarde el archivo y cierre su editor.

Comprobación del servidor de desarrollo

Cuando ya disponga de un usuario, podrá iniciar el servidor de desarrollo de Django para ver el aspecto de un nuevo proyecto de Django. Debería usarlo únicamente para el desarrollo. Cuando esté listo para la implementación, asegúrese de seguir detenidamente las directrices de Django relacionadas con la implementación.

Antes de probar el servidor de desarrollo, compruebe que abra el puerto correspondiente en su firewall. Si siguió los pasos de la guía de configuración inicial para servidores y usa UFW, puede abrir el puerto 8000 escribiendo lo siguiente:

  • sudo ufw allow 8000

Inicie el servidor de desarrollo:

  • python manage.py runserver your_server_ip:8000

Agregue :8000 al final de la dirección IP de su servidor en su navegador web y visítela:

http://your_server_ip:8000

Debería ver lo siguiente:

Página pública de Django

Para acceder a la interfaz de administrador, añada /admin/ al final de su URL:

http://your_server_ip:8000/admin/

Con esto, accederá a una pantalla de inicio de sesión:

Inicio de sesión de administrador en Django

Si introduce el nombre de usuario y la contraseña de administrador que acaba de crear, tendrá acceso a la sección principal de administración del sitio:

Página de administración de Django

Para obtener más información sobre cómo trabajar con la interfaz de administración de Django, consulte “Cómo habilitar y conectar la interfaz de administración de Django”.

Cuando termine de comprobar el sitio predeterminado, podrá detener el servidor de desarrollo escribiendo CTRL-C en su terminal.

El proyecto de Django que creó proporciona la base estructural para el diseño de un sitio más completo. Consulte la documentación de Django para obtener más información sobre cómo crear sus aplicaciones y personalizar su sitio.

Conclusión

Con esto, habrá instalado Django en su servidor de Ubuntu 18.04 y contará con las principales herramientas que necesita para crear sólidas aplicaciones web. También sabrá iniciar un nuevo proyecto y lanzar el servidor para desarrolladores. El aprovechamiento de un framework web completo como Django puede ayudar a acelerar el desarrollo, lo que le permitirá concentrarse solo en los aspectos únicos de sus aplicaciones.

Si desea más información sobre cómo trabajar con Django, con acceso a debates en profundidad sobre aspectos como modelos y vistas, consulte nuestra serie de desarrollo de Django.

Creative Commons License