解决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设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
详解python3中tkinter知识点
Jun 21 Python
Python实现常见的回文字符串算法
Nov 14 Python
Python类的继承用法示例
Jan 31 Python
python scrapy爬虫代码及填坑
Aug 12 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
keras打印loss对权重的导数方式
Jun 10 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
python调用摄像头的示例代码
Sep 28 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python面向对象版学生信息管理系统
Jun 24 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/07/07 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
教你安装python Django(图文)
2013/11/04 Python
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python写的一个简单监控系统
2015/06/19 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
军训 自我鉴定
2014/02/03 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
大学同学会活动方案
2014/08/20 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书