Cómo instalar el marco de aplicaciones web Django en Debian 10

Django es un framework de aplicaciones web de código abierto que te ayuda a desarrollar sitios web y aplicaciones dinámicas. Es seguro, rápido y estable y te permite crear un sitio web complejo con menos codificación. Hay varias formas de instalar Django en tu sistema. Puedes instalarlo usando el repositorio de Debian, usando PIP o desde el repositorio Git. Puedes elegir cualquier método en función de tus necesidades. Django te permite crear un proyecto en entornos virtuales de Python. De esta forma puedes crear varios entornos Django en un único sistema.

En este tutorial, aprenderemos a instalar el framework web Django con PIP en Debian 10. También aprenderemos a crear una aplicación Django y a conectarla con una base de datos.

Requisitos previos

  • Un servidor con Debian 10.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Antes de empezar, actualiza tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez actualizado tu sistema, reinícialo para aplicar los cambios.

Instalar Django

Django está escrito en el lenguaje Python. Así que necesitarás instalar las dependencias de Python en tu sistema para poder instalar Django. Puedes instalarlas todas con el siguiente comando:

apt-get install python3 python3-pip tree -y

Después de instalar todos los paquetes, puedes verificar la versión instalada de PIP con el siguiente comando:

pip3 -V

Deberías obtener la siguiente salida:

pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

Ahora, puedes proceder a instalar Django con el comando PIP, como se muestra a continuación:

pip3 install Django

Una vez completada la instalación, comprueba la versión de Django mediante el siguiente comando:

django-admin --version

Deberías ver la siguiente salida:

3.0.2

En este punto, Django ha sido instalado en tu servidor. Ahora puedes pasar al siguiente paso.

Crear un proyecto Django

Ahora vamos a empezar a crear un proyecto Django de ejemplo. En primer lugar, cambia el directorio a /opt donde quieras crear un proyecto Django:

cd /opt

A continuación, ejecuta el siguiente comando para crear un nuevo proyecto Django llamado Dproject:

django-admin startproject Dproject

Una vez creado el proyecto, puedes ver la estructura de directorios de este proyecto con el siguiente comando:

tree

Deberías obtener la siguiente salida:

.
??? Dproject
    ??? Dproject
    ?   ??? asgi.py
    ?   ??? __init__.py
    ?   ??? settings.py
    ?   ??? urls.py
    ?   ??? wsgi.py
    ??? manage.py

A continuación, cambia el directorio al Dproject y migra los cambios pendientes con el siguiente comando:

cd Dproject
python3 manage.py migrate

Una vez que la migración se haya completado con éxito, deberías ver la siguiente salida:

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 auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying sessions.0001_initial... OK

En este punto, se ha creado un nuevo proyecto Django dentro del directorio /opt.

Crear un superusuario para Django

A continuación, tendrás que crear un superusuario para Django para acceder a la interfaz de administración de Django. Puedes crearlo con el siguiente comando:

python3 manage.py createsuperuser

Proporciona el nombre de usuario, la dirección de correo electrónico y la contraseña que desees, como se muestra a continuación:

Username (leave blank to use 'root'): admin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

Iniciar el servidor Django

Por defecto, Django no es accesible desde el sistema remoto. Así que tendrás que configurar Django y definir la IP de tu servidor. Puedes hacerlo editando el archivo settings.py.

nano /opt/Dproject/Dproject/settings.py

Cambia la siguiente línea:

ALLOWED_HOSTS = ['your-server-ip']

Guarda y cierra el archivo cuando hayas terminado. A continuación, inicia el servidor Django con el siguiente comando:

cd /opt/Django
python3 manage.py runserver 0.0.0.0:8000

Una vez que el servidor se inicie con éxito, deberías obtener la siguiente salida:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
January 07, 2020 - 13:01:23
Django version 3.0.2, using settings 'Dproject.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Acceso a la aplicación Django

En este punto, la aplicación Django está iniciada y a la escucha en el puerto 8000. Para acceder a ella, abre tu navegador web y escribe la URL http://your-server-ip:8000. Deberías ver la aplicación Django en la siguiente pantalla:

Marco Django

Para acceder a la interfaz de administración de Django, abre tu navegador web y escribe la URL http://your-server-ip:8000/admin. Serás redirigido a la página de inicio de sesión de Django:

Inicio de sesión en Django

Proporciona tu nombre de usuario y contraseña de administrador de Django y haz clic en el botón Iniciar sesión. Deberías ver la interfaz de Django Admin en la siguiente pantalla:

Consola de administración de Django

Instalar el conector de base de datos MariaDB

A continuación, tendrás que instalar el conector de base de datos MariaDB y otros paquetes de desarrollo para conectar Django con la base de datos MariaDB. Puedes instalarlos todos con el siguiente comando:

apt-get install mariadb-server python3-dev libmariadb-dev libmariadbclient-dev -y

Una vez instalados todos los paquetes, puedes instalar la librería mysqlclient utilizando el comando PIP como se muestra a continuación:

pip3 install mysqlclient

Una vez instalada, entra en el shell de MariaDB con el siguiente comando:

mysql

A continuación, establece la contraseña de root para MariaDB con el siguiente comando.

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpassword");

A continuación, crea una base de datos para Django con el siguiente comando:

MariaDB [(none)]> create database testdb;

Puedes ver la base de datos creada anteriormente con el siguiente comando:

MariaDB [(none)]> show databases;

Deberías obtener la siguiente salida:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| testdb             |
+--------------------+

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Configurar Django para la conexión a MariaDB

A continuación, tendrás que definir las credenciales de la base de datos MariaDB en Django. Puedes definirlas editando el archivo settings.py:

nano /opt/Dproject/Dproject/settings.py

Busca las siguientes líneas:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Y sustitúyelas por las siguientes líneas:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
        'read_default_file': '/etc/mysql/mariadb.conf.d/50-client.cnf',
        },
    }
}

Guarda y cierra el archivo cuando hayas terminado. A continuación, edita el archivo de credenciales del cliente MariaDB como se muestra a continuación:

nano /etc/mysql/mariadb.conf.d/50-client.cnf

Define las credenciales de tu base de datos MariaDB como se muestra a continuación:

[client]
database = testdb 
user = root   
password = newpassword
default-character-set = utf8

Guarda y cierra el archivo y luego reinicia el servicio MariaDB para aplicar los cambios:

systemctl restart mariadb

A continuación, cambia el directorio al proyecto Django y migra los nuevos cambios con el siguiente comando:

cd /opt/Dproject
python3 manage.py migrate

Una vez que la migración se haya completado con éxito, puedes pasar al siguiente paso.

Probar la conexión con MariaDB

En este punto, Django está configurado para conectar la base de datos MariaDB. Es el momento de probarlo.

Para ello, inicia el servidor Django con el siguiente comando:

cd /opt/Django
python3 manage.py runserver 0.0.0.0:8000

Una vez que el servidor Django se haya iniciado con éxito, deberías obtener la siguiente salida:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
January 07, 2020 - 13:30:49
Django version 3.0.2, using settings 'Dproject.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Ahora puedes acceder a tu aplicación Django utilizando la URL http://your-server-ip:8000. Deberías ver tu aplicación Django en la siguiente pantalla:

Aplicación Django

Después de la prueba, puedes detener el servidor Django de cualquier tipo pulsando CTRL + C en tu terminal.

Conclusión

Enhorabuena! has instalado con éxito Django y lo has conectado con la base de datos MariaDB en el servidor Debian 10. Ahora puedes empezar a desarrollar tu aplicación web y aplicar las migraciones en tu aplicación Django. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...