解决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使用urllib2获取网络资源实例讲解
Dec 02 Python
Python制作爬虫采集小说
Oct 25 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
python实现自动解数独小程序
Jan 21 Python
Django REST 异常处理详解
Jul 15 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
浅谈python数据类型及其操作
May 25 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
Python使用chardet判断字符编码
2015/05/09 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
浅析NumPy 切片和索引
2020/09/02 Python
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
白酒市场开发计划书
2014/01/09 职场文书
销售内勤岗位职责
2015/02/10 职场文书
家长意见书
2015/06/04 职场文书
小学运动会宣传稿
2015/07/23 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
导游词之太湖
2019/10/08 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技