Volver al blog

Creación de una aplicación Django con conexión a base de datos: un tutorial

Creación de una aplicación Django con conexión a base de datos: un tutorial

Django es un framework web gratuito y de código abierto creado en Python. Publicado por primera vez en 2005, Django incorpora el lema de “desarrollo rápido y diseño limpio y pragmático”. El framework, desplegado en un servidor web, puede producir rápidamente una interfaz web con funciones ricas, seguridad y escalabilidad.

Cualquier aplicación web depende de bases de datos para su contenido. Django, al ser un framework moderno, admite una serie de programas de bases de datos estándar, por ejemplo, PostgreSQL, SQLite, MySQL, etc. Esta guía mostrará cómo conectar una aplicación Django a una base de datos en MySQL.

Requisitos previos

Para seguir este tutorial, debe cumplir con ciertas condiciones previas antes de pasar a Django y la conexión a la base de datos:

Instalación y configuración de Python 3

Django está escrito en Python. La ejecución de cualquier aplicación de Python requiere que los binarios de Python estén instalados en el sistema. Ubuntu viene con Python instalado por defecto. Aquí, utilizaremos Python 3. Desde la terminal, ejecute los siguientes comandos. Primero, actualice la APT caché y actualice (si está disponible) todos los paquetes instalados:

Python 3 está disponible directamente desde los servidores de paquetes oficiales de Ubuntu. El paquete python-is-python3  crea un enlace blando del binario python a python3 para facilitar su uso:

A continuación, verifique si la instalación se realizó correctamente:

Después de eso, necesitamos pip. Es el gestor de paquetes estándar de Python. Se encarga de gestionar las librerías adicionales de Python que no forman parte de la librería estándar. Tenga en cuenta que estamos instalando pip3 (para Python 3):

Por último, necesitamos algunos paquetes adicionales para un entorno de programación robusto:

Instalación y configuración de MySQL

Esta sección demostrará brevemente cómo instalar y configurar MySQL. Está disponible en los repositorios de paquetes predeterminados de Ubuntu:

Si la instalación se realizó correctamente, MySQL comenzará a ejecutarse en segundo plano. Verifique si funciona correctamente:

Django App 1

El servidor MySQL está activo y en funcionamiento. Ahora podemos pasar de forma segura al desarrollo de nuestra aplicación Django.

Trabajar con Django

  • Establecer la aplicación Django de ejemplo

La base de nuestra aplicación web requiere el esqueleto del proyecto Django. Contiene todas las herramientas y librerías necesarias para crear una aplicación web robusta. Primero, crearemos un directorio dedicado para nuestra aplicación Django. Se recomienda dar al directorio un nombre significativo y coherente con la aplicación que vamos a crear. En esta demostración, lo llamaremos myDemoApp:

Necesitamos el módulo venv de Python para crear un entorno virtual dentro del directorio. Instale el módulo usando APT:

Luego, navegue al directorio y establezca un entorno virtual. Para mayor claridad, llamamos al entorno demoapp_env:

A continuación, active el entorno virtual ejecutando el script activate:

Django App 2

Ahora instalaremos Django dentro de este entorno virtual dedicado. Pip descargará e instalará algunos componentes adicionales:

Django está instalado y listo para ser utilizado. Llame al comando django-admin para crear un nuevo proyecto Django. Después de eso, dé a la aplicación un nombre apropiado:

Creará un proyecto de demostración con los archivos y directorios de proyecto necesarios en su lugar:

Django App 3

El esqueleto del proyecto está listo. A continuación, debemos configurarlo correctamente para lograr nuestro objetivo.

  • Edición de la configuración del proyecto Django

Todas las configuraciones del proyecto se almacenan en el archivo settings.py. Se encuentra dentro del directorio del proyecto Django. Comenzaremos configurando una zona horaria adecuada y enumerando los hosts que pueden conectarse a la aplicación Django. Abra el archivo de configuración en un editor de texto:

Desplácese hacia abajo en el script y busque la entrada TIME_ZONE. Para la demostración, la zona horaria está configurada en America/New_York:

TIME_ZONE

Como referencia, el siguiente comando imprimirá todas las zonas horarias admitidas en Linux:

A continuación, desplácese hasta la entrada ALLOWED_HOSTS. Controla qué máquina(s) pueden acceder a la aplicación. Para la demostración, solo contiene localhost:

Django App 4Luego, guarde el archivo y cierre el editor. El siguiente comando aplicará los cambios:

python manageAhora, necesitamos crear una cuenta de administrador para la aplicación web. Esta cuenta se utilizará para acceder a la interfaz de administración de Django. Ejecute el siguiente comando:

Django App 5Le pedirá el nombre de usuario, el correo electrónico y la contraseña. La aplicación ya está lista para conectarse a la base de datos.

Conexión MySQL

  • Instalación de conectores MySQL y librerías de desarrollo

Para integrar MySQL en la aplicación Django, necesitamos algunas librerías adicionales de Python 3 que proporcionarán las herramientas necesarias. Utilizaremos el conector de base de datos mysqlclient. Es un fork de MySQLdb.

Asegúrese de que tenemos python3-dev instalado:

También necesitamos algunas cabeceras y librerías adicionales de Python y MySQL:

Una vez completada la instalación, use pip para instalar el módulo de Python mysqlclient. Puede generar algunos mensajes de error que se pueden ignorar:

  • Configuración de una base de datos dedicada

El siguiente paso es configurar una base de datos dedicada y un usuario de base de datos para nuestra aplicación Django. Inicie la consola de MySQL como el usuario root :

Para verificar todas las bases de datos disponibles actualmente, ejecute la siguiente consulta:

Creemos una base de datos dedicada para nuestra aplicación Django. Dele un nombre apropiado que sea coherente con el nombre del proyecto:

A continuación, verifique la creación:

Django App 6Ahora, cree un usuario de MySQL dedicado. Configuraremos este usuario como el propietario de la base de datos. La aplicación Django utilizará las credenciales de este usuario para trabajar con la base de datos MySQL:

Otorgue al usuario demoapp_user todos los permisos sobre la base de datos demoapp_data:

Para que los cambios de permisos surtan efecto, recargue las MySQL grant tables:

Django App 7La base de datos ya está lista para conectarse a la aplicación Django.

  • Conexión de la base de datos a la aplicación Django

Finalmente, configuraremos la aplicación Django para usar la base de datos para el almacenamiento de datos. Abra el script de configuración settings.py:

Desplácese hacia abajo hasta la entrada DATABASES e introduzca el siguiente código:

Django App 8Guarde el archivo y cierre el editor. El siguiente paso es configurar el archivo de configuración descrito en el código anterior. Use sudo para abrir el archivo de texto en la ubicación descrita:

Este archivo de configuración contendrá información sobre la base de datos dedicada a Django y el usuario que creamos en el servidor MySQL. Agregue las siguientes líneas al final del archivo:

default-character-setPara que los cambios surtan efecto, tenemos que reiniciar el servidor MySQL:

  • Probando la conexión a MySQL

Ahora es el momento de verificar si la conexión a MySQL funciona correctamente. Si el servidor Django se ejecuta sin problemas, entonces la conexión funciona bien. De lo contrario, algo anda mal. Primero, aplique todos los cambios realizados en el proyecto Django:

python manageAhora, muévase al siguiente directorio del proyecto e inicie el servidor Django:

python manage.py runserverA continuación, intente acceder al servidor desde un navegador web:

server_ip_address

¡Voila! Hemos llegado con éxito a la página de éxito de Django. Esto también verifica que la conexión a MySQL funciona correctamente. Una vez finalizada la tarea, puede salir de forma segura del entorno virtual:

Reflexiones finales

En esta guía, ha aprendido los conceptos básicos para combinar Django y MySQL. Creamos una aplicación Django y mostramos cómo conectarla con una base de datos MySQL. La magia reside en el archivo de configuración de Django settings.py. También modificamos algunas configuraciones básicas como ALLOWED_HOSTS y TIME_ZONE. Django es increíblemente flexible. Además de MySQL, también es compatible con otros servidores SQL como PostgreSQL, motores de servidor como Nginx, etc.

También puede consultar nuestras guías sobre las mejores prácticas para instalar, configurar y trabajar con Django:

¡Feliz informática!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.