sql >> Database >  >> RDS >> Mysql

Django-tekenset en codering

Stel de charset in optie om utf8mb4 in de OPTIONS dictaat van de DATABASES instelling in het Django-instellingenbestand:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_db',
        'USER': 'my_user',
        'PASSWORD': 'my_pass',
        'HOST': 'my.host',
        'OPTIONS': {
            'charset': 'utf8mb4'  # This is the important line
        }
    }
}

Deze opties worden als argumenten doorgegeven aan de mysql-stuurprogrammaverbindingsfunctie, die doorgaans mysqlclient is. . Hier kunt u in de documentatie al deze parameters zien:

https://mysqlclient.readthedocs.io/user_guide.html#functions-and -kenmerken

Als u een andere driver gebruikt voor mysql heb je misschien een andere optie nodig.

Zorg er ook voor dat in de MySQL-database de tekenset van de kolom, de tabel of de hele database is ingesteld op utf8mb4 . Voor meer informatie over tekensets in MySQL zie:

MySQL-documenten:Tekensets en sorteringen specificeren
MySQL-documenten:De utf8mb4-tekenset (4-Byte UTF-8 Unicode-codering)
Stack Overflow:Wat is het verschil tussen utf8mb4- en utf8-tekensets in MySQL?

Er is trouwens een doorlopend pull-verzoek in Django om utf8mb4 . te maken de standaard:https://github.com/django/django/pull/8886



  1. Tien veelvoorkomende bedreigingen voor de kwaliteit van uitvoeringsplan

  2. Indexen in MySQL begrijpen:deel drie

  3. SQL Server:Vervang ongeldige XML-tekens uit een VARCHAR(MAX)-veld

  4. Databasemigraties op django-productie