解决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 相关文章推荐
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
使用Python从零开始撸一个区块链
Mar 14 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python中的反斜杠问题深入讲解
Aug 12 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
详解Python中的分支和循环结构
Feb 11 Python
Python安装whl文件过程图解
Feb 18 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 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/12/13 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
python requests使用socks5的例子
2019/07/25 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
捐书寄语赠言
2014/01/18 职场文书
三下乡活动方案
2014/01/31 职场文书
兴趣小组活动总结
2014/05/05 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
求职信如何撰写?
2019/05/22 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android