sql >> Base de Datos >  >> RDS >> Mysql

Configurando Django para usar MySQL

Compatibilidad con MySQL es simple de agregar. En tus DATABASES diccionario, tendrá una entrada como esta:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'DB_NAME',
        'USER': 'DB_USER',
        'PASSWORD': 'DB_PASSWORD',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}

También tiene la opción de utilizar MySQL archivos de opciones , a partir de Django 1.7. Puede lograr esto configurando sus DATABASES matriz así:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

También necesita crear el /path/to/my.cnf archivo con configuraciones similares a las anteriores

[client]
database = DB_NAME
host = localhost
user = DB_USER
password = DB_PASSWORD
default-character-set = utf8

Con este nuevo método de conexión en Django 1.7, es importante saber el orden en que se establecen las conexiones:

1. OPTIONS.
2. NAME, USER, PASSWORD, HOST, PORT
3. MySQL option files.

En otras palabras, si establece el nombre de la base de datos en OPCIONES, tendrá prioridad sobre NOMBRE, que anularía cualquier cosa en un archivo de opciones de MySQL.

Si solo está probando su aplicación en su máquina local, puede usar

python manage.py runserver

Agregando el ip:port El argumento permite que máquinas distintas a la suya accedan a su aplicación de desarrollo. Una vez que esté listo para implementar su aplicación, le recomiendo que consulte el capítulo sobre Implementación Django en el djangobook

El conjunto de caracteres predeterminado de Mysql a menudo no es utf-8, por lo tanto, asegúrese de crear su base de datos usando este sql:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

Si está utilizando Conector MySQL de Oracle tu ENGINE la línea debería verse así:

'ENGINE': 'mysql.connector.django',

Tenga en cuenta que primero deberá instalar mysql en su sistema operativo.

brew install mysql (MacOS)

Además, el paquete del cliente mysql ha cambiado para python 3 (MySQL-Client funciona solo para python 2)

pip3 install mysqlclient