解决django 向mysql中写入中文字符出错的问题


Posted in Python onMay 18, 2020

之前使用django+mysql建立的一个站点,发现向数据库中写入中文字符时总会报错,尝试了修改settings文件和更改数据表的字符集后仍不起作用。最后发现,在更改mysql的字符集后,需要重建数据库,才能起作用。

这里完整记录一下解决方案

首先更改mysql的字符集

ubuntu下找到/etc/mysql/my.cnf   在最后添加

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

用mysql -h localhost -u root -p 命令进入mysql 命令行

然后使用 show variables like 'character_set%'; 查看字符集设置,看到 client server database 为utf8即为成功

但是我的django依然报错,只能重建数据库,如果数据库文件不多,重建数据库的工作量其实非常小

首先建立新的数据库,此时默认编码格式就是utf8,已经支持中文、

然后修改settings.py中的database项的name为新的数据库名

最后执行数据库迁移即可,在包含manage.py文件夹目录下

python manage.py makemigrations

python manage.py migrate

即可创建用户表和modle中自定的表格,表结构与原来相同,将数据复制到新表即可

补充知识:解决django字符集 输入汉字之后mysql数据库报错的问题【慎用】

解决思路:

启动mysql数据库 net start mysql

之后: mysql -u root -p

查看数据库字符集 show variables like ‘character%';

发现 character-set-server 和 character_set_database 的值为latin1

解决方案:

编辑查看MySQL文件夹下的my.ini 配置文件

在[mysqld]下添加 character-set-server=utf8

systemctl restart mysql 重启 MySQL Server,再此查看字符集变量,发现已经是utf8

drop database 【已经添加的数据库】 并 create database 【新数据库】

问题解决!

此方法简单粗暴,慎用!数据库里面的文件还要重写,比较麻烦,不过可以在创建数据库之后,添加一条数据,利用自定义的django图形化界面,再添加数据也是可以的。

以上这篇解决django 向mysql中写入中文字符出错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式匹配ip地址实例
Oct 09 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
pandas删除指定行详解
Apr 04 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
python3获取当前目录的实现方法
Jul 29 Python
对python中UDP,socket的使用详解
Aug 22 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
Python基于进程池实现多进程过程解析
Apr 30 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
May 18 #Python
python实现人像动漫化的示例代码
May 17 #Python
django日志默认打印request请求信息的方法示例
May 17 #Python
使用pyecharts1.7进行简单的可视化大全
May 17 #Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 #Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 #Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 #Python
You might like
PHP 上传文件大小限制
2009/07/05 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
php简单的会话类代码
2011/08/08 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
python使用心得之获得github代码库列表
2014/06/25 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
2014年“世界无车日”活动方案
2014/09/21 职场文书
法定代表人资格证明书
2015/06/18 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
MySQL里面的子查询的基本使用
2021/08/02 MySQL