Django 创建支持中文数据库

作者: yarving | 来源:发表于2018-04-01 15:00 被阅读138次

问题的引出

当使用django默认生成项目时,使用python manage.py migrate生成数据库时,会自动创建一个数据库。以MySQL为例,当往数据库中写入中文数值时,会报错误。诸如:
Incorrect string value: '\xC5\x82oj\xC4\x87' for column 'last_name' at row 104

恼火的是,当报出这个错误信息时,根本没有合适的错误信息显示出来,我忘了我第一回看到这个错误是什么感觉了,经过搜索引擎的结果提示,再结合经验才发现这个是因为默认创建的MySQL数据库不能有效支持中文。

当试图去寻找解决方案时,不管是百度还是谷歌,大部分的搜索结果都是手动创建一个支持中文的数据库

CREATE DATABASE 数据库名字 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;,如下图所示:

常见的解决方案

亦或是修改migrations文件,这样能实现自动创建。

其实,在django的官方文档中,人家有关于对MySQL数据库的配置,里面提到了CHARSETCOLLATE的配置设置。

先公布最终答案,在myproject/settings.py中的DATABASES字段添加如下图所示配置,如果为测试用途,需要为测试数据库的配置也加上CHARSETCOLLATION这两个配置:

优雅的解决方案 Django 1.8 官方文档说明

参考资料:

相关文章

  • Django 创建支持中文数据库

    问题的引出 当使用django默认生成项目时,使用python manage.py migrate生成数据库时,会...

  • mysql常用命令

    数据库 创建 create database database_name 创建testdb数据库并支持中文crea...

  • mysql 插入汉字 异常:ERROR 1366 (HY000)

    字段编码不支持中文,把数据库或表的编码设置支持中文即可 原来创建的数据库: create database cha...

  • django 工程创建

    创建Django工程 创建APP 数据库操作 运行Django 配置settings.py 模板路径 静态文件st...

  • Djang2.0实战博客项目

    1.0 创建项目 1.1 运行Django项目, 1.2更改时区,国际化显示中文 1.3 创建Django应用bl...

  • redis 数据库的使用

    django-redis 中文文档django-redis 基于 BSD 许可, 是一个使 Django 支持 R...

  • 开发流程

    开发流程  创建 Django 项目 创建应用 模型 数据库配置 数据库表的定义 定义模型...

  • Django基本架构及项目创建

    资源:Django英文官网 1. cmd - 命令创建虚拟环境 2. 创建Django项目 3. 创建数据库 4....

  • Python3下配置Django的数据库

    在python3下用MySQL配置Django的数据库,步骤如下:1.创建django项目 django-admi...

  • Django 后台支持中文

    django后台可以支持中文界面,但是设置成 zh-CN zh_cn 一直出错,百度了好久都没有找到结果。最后在某...

网友评论

    本文标题:Django 创建支持中文数据库

    本文链接:https://www.haomeiwen.com/subject/lwaocftx.html