Mysql
 sql >> Base de données >  >> RDS >> Mysql

Configurer Django pour utiliser MySQL

Prise en charge de MySQL est simple à ajouter. Dans vos DATABASES dictionnaire, vous aurez une entrée comme celle-ci :

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',
    }
}

Vous avez également la possibilité d'utiliser MySQL fichiers d'options , à partir de Django 1.7. Vous pouvez y parvenir en définissant vos DATABASES tableau comme ceci :

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

Vous devez également créer le /path/to/my.cnf fichier avec des paramètres similaires à ceux d'en haut

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

Avec cette nouvelle méthode de connexion dans Django 1.7, il est important de savoir que les connexions de commande sont établies :

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

En d'autres termes, si vous définissez le nom de la base de données dans OPTIONS, cela prévaudra sur NAME, qui remplacera tout ce qui se trouve dans un fichier d'options MySQL.

Si vous testez simplement votre application sur votre machine locale, vous pouvez utiliser

python manage.py runserver

Ajout de l'ip:port L'argument permet à d'autres machines que la vôtre d'accéder à votre application de développement. Une fois que vous êtes prêt à déployer votre application, je vous recommande de jeter un œil au chapitre sur Déploiement Django sur le djangobook

Le jeu de caractères par défaut de MySQL n'est souvent pas utf-8, assurez-vous donc de créer votre base de données en utilisant ce sql :

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

Si vous utilisez le connecteur MySQL d'Oracle votre ENGINE la ligne devrait ressembler à ceci :

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

Notez que vous devrez d'abord installer mysql sur votre système d'exploitation.

brew install mysql (MacOS)

De plus, le package client mysql a changé pour python 3 (MySQL-Client ne fonctionne que pour python 2)

pip3 install mysqlclient