美文网首页
Django 初始化数据库数据的方法

Django 初始化数据库数据的方法

作者: 德斯儿 | 来源:发表于2018-06-06 20:18 被阅读0次

    问题:当部署 Django Server 时,有一些数据要在运行前初始化到数据库中,如何初始化就是我们要解决的问题

    开发环境

    • System:Ubuntu 14.04.1 LTS

    • IDE:Pycharm 2018.1.2

    • Django:1.11.13

    初始化数据入数据库

    在 app 下创建 fixtures,再创建初始化文件 initial_data.json/xml/yaml,三种格式均可。

    • 编写初始化文件
      initial_data.json
    [
    
      {
    
        "model": "myapp.person",
    
        "pk": 1,
    
        "fields": {
    
          "first_name": "John",
    
          "last_name": "Lennon"
    
        }
    
      },
    
      {
    
        "model": "myapp.person",
    
        "pk": 2,
    
        "fields": {
    
          "first_name": "Paul",
    
          "last_name": "McCartney"
    
        }
    
      }
    
    ]
    
    

    initial_data.yaml

    - model: myapp.person
    
      pk: 1
    
      fields:
    
        first_name: John
    
        last_name: Lennon
    
    - model: myapp.person
    
      pk: 2
    
      fields:
    
        first_name: Paul
    
        last_name: McCartney
    
    
    • 把上面的数据同步到数据库中
    
    $ python manage.py loaddata initial_data.yaml  # 此处不用写具体路径,只要文件在当前 app/fixtures/ 目录下即可
    
    

    导出数据库内容为初始化文件

    
    $ mkdir appname/fixtures  # 必须有 fixtures 目录,下面语句才能成功执行
    
    $ python manage.py dumpdata --format=json appname > appname/fixtures/initial_data.json
    
    

    说明: 在不同 app 下相同名字的初始化文件,执行初始化命令时,会同时都执行完成。

    
    # 假设有两个 app 下同时存在 initial_data.yaml
    
    $ python manage.py loaddata initial_data.yaml
    
    Installed 12 object(s) from 2 fixture(s) # 此处为两张表共插入12条初始化数据
    
    

    参考

    Django 官方文档说明

    相关文章

      网友评论

          本文标题:Django 初始化数据库数据的方法

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