数据库migrate时遇到字符集问题,已解决。供后来人参考。
1、问题:
在 python manage.py migrate 时出现如下错误:
1 | django.db.utils.InternalError: ( 1366 , "Incorrect string value: '\xE7\x94\xA8\xE6\x88\xB7' for column 'name' at row 1" ) |
属于mysql数据编码的问题。
关键性解决思路:
* 修改mysql配置文件
* 增加mysql连接时的字符设定
2、修改mysql配置文件
在ubuntu上是:
1 | sudo vim /etc/mysql/mysql .conf.d /mysqld .cnf |
在 [mysqld] 和 [client] 部分分别增加内容
重启mysql服务以后,进入mysql查询字符集,可以发现从默认的latin1改为了utf-8。
3、设置mysql连接时为utf-8
Django 的 settings.py 中,数据库连接部分,
1 | 'OPTIONS' : { 'init_command' : 'SET default_storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci;' } |
Django REST framework课程视频,RESTFul API前后端分离开发
了解课程