sql >> Databasteknik >  >> RDS >> Mysql

Django teckenuppsättning och kodning

Ställ in charset alternativet till utf8mb4 i OPTIONS dict av DATABASES inställning i Django-inställningsfilen:

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

Dessa alternativ kommer att skickas som argument till mysql drivrutinsanslutningsfunktionen, som vanligtvis är mysqlclient . Här kan du se i dokumentationen alla dessa parametrar:

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

Om du använder en annan drivrutin för mysql kan du dock behöva ett annat alternativ.

Se också till att i MySQL-databasen är teckenuppsättningen för antingen kolumnen, tabellen eller hela databasen inställd på utf8mb4 . För mer information om teckenuppsättningar i MySQL se:

MySQL docs:Ange teckenuppsättningar och sorteringar
MySQL docs:utf8mb4 Character Set (4-Byte UTF-8 Unicode-kodning)
Stack Overflow:Vad är skillnaden mellan utf8mb4 och utf8 teckenuppsättningar i MySQL?

Det finns BTW en pågående pull-begäran i Django för att göra utf8mb4 standard:https://github.com/django/django/pull/8886



  1. Linq till SQL med hjälp av grupp efter, och ordning efter antal

  2. Hur man lagrar videoinnehåll i SQLite-databasen (inte videosökvägen)

  3. Laravel:Sådd flera unika kolumner med Faker

  4. CodeIgniter Active Record infoga från en tabell till en annan