Django项目连接数据库时的编码问题

Django项目连接数据库时,一般需要在settings.py中作如下配置:



然而如果在settings.py还添加了如下配置:



那么就代表用utf-8格式连接数据库,如果此时数据库本身的编码格式不是utf-8,则连接失败。
有两种解决方式,一是删掉settings.py中对于编码格式的设置,二是修改数据库自身的编码格式。这里说明第二种方法:

进入数据库,打开一个新建查询的窗口,输入

--两种情况
--1.新建数据库
CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
--2.修改原有数据库
ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

根据自身情况选择一种即可。
但要注意,有些不一定是utf8,要根据settings.py中的TEST参数来判断设成什么编码格式,比如



上图中,CHARSET定义为utf8,COLLATION定义为utf8_general_ci,那么对应的,
SQL语句就用“CHARACTER SET utf8 COLLATE utf8_general_ci”,换言之,如果
CHARSET定义为AAA,COLLATION定义为BBB,那么SQL语句就用“CHARACTER SET AAA COLLATE BBB”

你可能感兴趣的:(Django项目连接数据库时的编码问题)