MySQL-stöd
är enkelt att lägga till. I dina DATABASES
ordbok, kommer du att ha en post så här:
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',
}
}
Du har också möjlighet att använda MySQL alternativfiler
, från och med Django 1.7. Du kan åstadkomma detta genom att ställa in dina DATABASES
array som så:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
Du måste också skapa /path/to/my.cnf
fil med liknande inställningar från ovan
[client]
database = DB_NAME
host = localhost
user = DB_USER
password = DB_PASSWORD
default-character-set = utf8
Med den här nya anslutningsmetoden i Django 1.7 är det viktigt att veta att beställningsanslutningarna är etablerade:
1. OPTIONS.
2. NAME, USER, PASSWORD, HOST, PORT
3. MySQL option files.
Med andra ord, om du ställer in namnet på databasen i OPTIONS, kommer detta att ha företräde framför NAME, vilket skulle åsidosätta allt i en MySQL-alternativfil.
Om du bara testar din applikation på din lokala dator kan du använda
python manage.py runserver
Lägger till ip:port
argument tillåter andra maskiner än din egen att komma åt din utvecklingsapplikation. När du är redo att distribuera din applikation rekommenderar jag att du tar en titt på kapitlet om distribution Django
på djangobook
Mysql standardteckenuppsättning är ofta inte utf-8, se därför till att skapa din databas med denna sql:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin
Om du använder Oracles MySQL-anslutning din ENGINE
raden ska se ut så här:
'ENGINE': 'mysql.connector.django',
Observera att du först måste installera mysql på ditt operativsystem.
brew install mysql (MacOS)
Dessutom har mysql-klientpaketet ändrats för python 3 (MySQL-Client
fungerar bara för python 2)
pip3 install mysqlclient