解决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计算一个文件里字数的方法
Jun 15 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
python输出决策树图形的例子
Aug 09 Python
jupyter notebook 增加kernel教程
Apr 10 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
python的json包位置及用法总结
Jun 21 Python
Python select及selectors模块概念用法详解
Jun 22 Python
python操作链表的示例代码
Sep 27 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
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
javascript 验证日期的函数
2010/03/18 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
np.random.seed() 的使用详解
2020/01/14 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
总务岗位职责
2013/11/19 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
单位承诺书格式
2014/05/21 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
2014年社区工作总结
2014/11/18 职场文书
教师工作决心书
2015/02/04 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL