【新手】如何在Django中使用utf-8格式进行数据库数据的转储(备份)
首先
在前不久的一次Django项目中,当备份数据库数据时,日本语的数据出现乱码。本文介绍了备份时采用UTF-8格式的方法。
环境
我已在以下环境中验证了操作。
Python版本为3.7.1,
Django版本为3.2.16。
在Django中执行导出命令
Django将数据以utf-8格式转存的命令如下。
请在Django应用的manage.py所在目录中执行。
$ python -Xutf8 manage.py dumpdata [アプリ名[.モデル名]] > [出力先]
-
- -Xutf8:データをutf8形式で出力するオプション。
-
- [アプリ名[.モデル名]]:アプリ名のみを指定した場合は全てのモデルのデータを出力します。アプリ名.モデル名と指定した場合は該当のモデルのデータのみを出力します。
- [出力先]:dumpファイルの出力先になります。一般的には[アプリ名]/fixtures/ [ファイル名]を指定することが多いです。
实例
将书籍管理应用程序(图书应用)中的图书类别模型数据进行备份。
class Category(models.Model):
"""書籍カテゴリモデル"""
name = models.CharField(verbose_name='カテゴリ名', max_length=50)
class Meta:
verbose_name_plural='Category'
def __str__(self):
return self.name
在终端上执行以下命令。
$ python -Xutf8 manage.py dumpdata books.Category > books/fixtures/category.json
成功生成了转储文件,并且日语也没有乱码。
[
{
"model": "books.category",
"pk": "1",
"fields": {"name": "文学・評論"}
} ,
{
"model": "books.category",
"pk": "2",
"fields": {"name": "人文・思想"}
} ,
{
・・・以下略
}]
请参考以下网站
-
- 公式ドキュメント
- stack overflow
结束
在Django中无需依赖RDMS即可进行dump非常方便!