sql >> Database >  >> RDS >> Mysql

Django instellen om MySQL te gebruiken

MySQL-ondersteuning is eenvoudig toe te voegen. In uw DATABASES woordenboek, heb je een invoer als deze:

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

U hebt ook de mogelijkheid om MySQL optiebestanden te gebruiken , vanaf Django 1.7. U kunt dit bereiken door uw DATABASES . in te stellen array als volgt:

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

U moet ook de /path/to/my.cnf . maken bestand met vergelijkbare instellingen van hierboven

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

Met deze nieuwe verbindingsmethode in Django 1.7 is het belangrijk om te weten dat de volgorde van verbindingen tot stand is gebracht:

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

Met andere woorden, als u de naam van de database in OPTIONS instelt, heeft deze voorrang op NAME, die alles in een MySQL-optiebestand zou overschrijven.

Als u uw toepassing alleen op uw lokale computer aan het testen bent, kunt u

python manage.py runserver

De ip:port . toevoegen argument geeft andere machines dan uw eigen toegang tot uw ontwikkeltoepassing. Zodra u klaar bent om uw toepassing te implementeren, raad ik u aan het hoofdstuk over Implementeren te lezen Django op de djangobook

De standaardtekenset van Mysql is vaak niet utf-8, zorg er daarom voor dat u uw database maakt met deze sql:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

Als u Oracle's MySQL-connector uw ENGINE regel zou er als volgt uit moeten zien:

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

Merk op dat u eerst mysql op uw besturingssysteem moet installeren.

brew install mysql (MacOS)

Ook is het mysql-clientpakket gewijzigd voor python 3 (MySQL-Client werkt alleen voor python 2)

pip3 install mysqlclient


  1. GROUP BY met MAX(DATUM)

  2. LIMIT gebruiken binnen GROUP BY om N resultaten per groep te krijgen?

  3. Verschillen tussen utf8 en latin1

  4. Een nummer "unhexen" in MySQL