Configurar y conectar una base de datos en un proyecto en Django (MySQL)

- Andrés Cruz

In english
Configurar y conectar una base de datos en un proyecto en Django (MySQL)

Con todas las capas que cuenta nuestro framework, una de las principales es la del manejo de datos, en otras palabras forma parte de nuestra base de datos, que pueden ser de varios tipos como MySQL, MariaDB, PostgreSQL entre otras.

Conectores para cada motor de base de datos

Lo principal que tienes que tener en cuenta al momento en el cual quieras conectarte a un motor de base de datos, es que simplemente varía el conector, es decir, dependiendo al servidor de la base de datos que quieras conectarte simplemente tienes que variar el conector y en la documentación oficial que te dejo un poco más abajo podrás ver los distintos tipos de conectores que puedes emplear y con esto los diferentes clientes.

En esta entrada vamos a ver cómo podemos crear una conexión con MySQL en Django; para eso tenemos un par de maneras, la oficial o la no oficial; si revisamos la documentación oficial.

Veremos que nos indican que a partir de la versión 3 de Django podemos emplear un Driver nativo para MySQL y para MariaDB que tu eres libre de probar la solución oficial, pero en caso e que te de un error como el siguiente:

*** no se puede abrir el archivo incluir 'mysql.h' ***

Probando la versión NO oficial del conector de MySQL

Podemos probar otra solución que seria instalar un paquete que servirá como driver o conector a nuestro MySQL que viene siendo el siguiente:

pip install PyMySQL

Entonces lo instalamos y ahora le tenemos que decir a nuestro proyecto en Django que emplee este driver; para eso:

firstProject\firstProject\__init__py

import pymysql
pymysql.version_info = (1, 3, 13, "final", 0)
pymysql.install_as_MySQLdb()

Y ahora simplemente tenemos que crear la base de datos que vamos a usar y luego establecer el resto de las conexiones:

firstProject\firstProject\settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangofirstproyect',
        'USER': 'root',
        'PASSWORD': ''
    }
}

Y con esto estamos listos para hacer operaciones más interesantes empleando nuestro MTV en Django cosa que haremos a partir de la siguiente entrada.  

  • DATABASE_NAME Indicamos el nombre de la base de datos. Si estás usando SQLite, especifica la ruta completo incluyendo el sistema de archivos hacia el archivo/base de datos.
  • DATABASE_USER Indicamos cual es el usuario de base de datos que vamos a emplear para conectarnos a la base de datos anterior.
  • DATABASE_PASSWORD Indicamos la contraseña del usuario anterior
  • DATABASE_HOST Este es uno de los elementos más importantes y es el host, si estamos en ambiente de desarrollo seguro será el de localhost o servidor local, pero si estas en ambiente de producción es muy probable que cambie a otro o una IP.

Dependiendo de la base de datos que vayas a emplear, seguramente tendrás que agregar algunos parámetros más o menos, por ejemplo en el caso de SQLite, que es la que viene por defecto, no es necesario indicar ni usuario/contraseña y tampoco host, ya que la misma simplemente es un archivo.

Lo siguiente que veremos es como crear un modelo para nuestra primera aplicación.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.