解决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 相关文章推荐
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python enumerate索引迭代代码解析
Jan 19 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
Python列表(List)知识点总结
Feb 18 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
Python实现生成密码字典的方法示例
Sep 02 Python
django 读取图片到页面实例
Mar 27 Python
python归并排序算法过程实例讲解
Nov 04 Python
python如何正确使用yield
May 21 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
python百行代码实现汉服圈图片爬取
Nov 23 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生成二维码的两个方法和实例
2014/07/01 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
python实现dict版图遍历示例
2014/02/19 Python
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
Python选课系统开发程序
2016/09/02 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python中logging日志库实例详解
2020/02/19 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
质检部部长职责
2013/12/16 职场文书
请假条格式范文
2014/04/10 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
放假通知范文
2015/04/14 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL