Supporto MySQL
è semplice da aggiungere. Nelle tue DATABASES
dizionario, avrai una voce come questa:
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',
}
}
Hai anche la possibilità di utilizzare i file delle opzioni MySQL
, a partire da Django 1.7. Puoi farlo impostando i tuoi DATABASES
array in questo modo:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
Devi anche creare il /path/to/my.cnf
file con impostazioni simili dall'alto
[client]
database = DB_NAME
host = localhost
user = DB_USER
password = DB_PASSWORD
default-character-set = utf8
Con questo nuovo metodo di connessione in Django 1.7, è importante sapere che vengono stabilite le connessioni dell'ordine:
1. OPTIONS.
2. NAME, USER, PASSWORD, HOST, PORT
3. MySQL option files.
In altre parole, se imposti il nome del database in OPTIONS, questo avrà la precedenza su NAME, che sovrascriverebbe qualsiasi cosa in un file di opzioni MySQL.
Se stai solo testando la tua applicazione sul tuo computer locale, puoi utilizzare
python manage.py runserver
Aggiunta di ip:port
argomento consente a macchine diverse dalla tua di accedere alla tua applicazione di sviluppo. Una volta che sei pronto per distribuire la tua applicazione, ti consiglio di dare un'occhiata al capitolo su Distribuzione Django
su djangobook
Il set di caratteri predefinito di MySQL spesso non è utf-8, quindi assicurati di creare il tuo database usando questo sql:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin
Se stai utilizzando connettore MySQL di Oracle il tuo ENGINE
la riga dovrebbe assomigliare a questa:
'ENGINE': 'mysql.connector.django',
Nota che dovrai prima installare mysql sul tuo sistema operativo.
brew install mysql (MacOS)
Inoltre, il pacchetto client mysql è cambiato per python 3 (MySQL-Client
funziona solo per Python 2)
pip3 install mysqlclient