欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

django mysql utf8mb4

呂致盈1年前11瀏覽0評論

最近在使用 Django 開發(fā) Web 應(yīng)用時(shí),遇到了處理中文字符編碼的問題。在 MySQL 中存儲(chǔ)中文字符沒有問題,但是在 Django 中傳輸和展示時(shí)出現(xiàn)了亂碼。經(jīng)過一番研究,發(fā)現(xiàn)使用 utf8mb4 編碼可以解決這個(gè)問題。

首先,我們需要在 MySQL 中設(shè)置字符編碼為 utf8mb4。可以通過命令行或者可視化工具進(jìn)行設(shè)置:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

接著,在 Django 的 settings.py 中進(jìn)行配置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
'sql_mode': 'traditional',
},
}
}

其中,需要注意兩個(gè)地方:

  • OPTIONS 中的 charset 必須設(shè)置為 utf8mb4。
  • 如果出現(xiàn)插入數(shù)據(jù)失敗的情況,可以嘗試將 sql_mode 設(shè)置為 traditional。

最后,在 Django 的 models.py 中對需要存儲(chǔ)中文字符的字段進(jìn)行設(shè)置:

class MyModel(models.Model):
title = models.CharField(max_length=255, charset='utf8mb4')
content = models.TextField(charset='utf8mb4')

設(shè)置完畢后,就可以愉快地使用中文了。