解决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获取指定网页上所有超链接的方法
Apr 04 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
python实现银行实战系统
Feb 26 Python
python编写俄罗斯方块
Mar 13 Python
python中sklearn的pipeline模块实例详解
May 21 Python
Python dict的常用方法示例代码
Jun 23 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 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 第二节 数据类型之转换
2012/04/28 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
实现两个文本框同时输入的实例
2017/09/25 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
python统计日志ip访问数的方法
2015/07/06 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Python autoescape标签用法解析
2020/01/17 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
python tqdm库的使用
2020/11/30 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
个人充满哲理的自我评价
2014/02/20 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
安全目标责任书
2014/07/22 职场文书
总经理岗位职责范本
2015/04/01 职场文书
东京审判观后感
2015/06/01 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android