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.
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:
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.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.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.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.
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:
OutputPython 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
Output1.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.
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
OutputPython 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
Output2.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
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
OutputPython 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
Output2.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.
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:
manage.py
, que puede usar para administrar varias tareas específicas de Django.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:
OutputOperations 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.
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:
. . .
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]
Cuando termine, guarde el archivo y cierre su editor.
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:
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:
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:
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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Excelente guía para subir nuestros proyectos en Django dentro de un servidor Ubuntu.