解决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使用xmlrpc实例讲解
Dec 17 Python
详解Python import方法引入模块的实例
Aug 02 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
python如何重载模块实例解析
Jan 25 Python
python 自动去除空行的实例
Jul 24 Python
python实现二维插值的三维显示
Dec 17 Python
python实现抽奖小程序
Apr 15 Python
python and or用法详解
Jun 26 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
基于Tensorflow一维卷积用法详解
May 22 Python
基于Python实现股票收益率分析
Apr 02 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中的stdClass类
2014/04/18 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
php实现算术验证码功能
2018/12/05 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
javascript 定义新对象方法
2010/02/20 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
详解python里的命名规范
2018/07/16 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
物业管理应届生求职信
2013/10/28 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
周年庆促销方案
2014/03/15 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
工作简历自我评价
2015/03/11 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
常用的Python代码调试工具总结
2021/06/23 Python
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers