• python测试开发django177.启动项目添加初始化数据(fixtures的使用) 上海


    前言

    当启动 django 项目的时候,有些表需要添加一些初始化数据,比如省份需先添加到数据库里面。
    可以使用django 的fixtures 来初始化表的数据。

    准备初始化数据

    外面可以项目启动后表里面添加的初始化数据写成 JSON,XML 或 YAML (要求已安装 PyYAML)格式。
    数据的准备可以使用 manage.py dumpdata 命令生成,参考前面一篇https://www.cnblogs.com/yoyoketang/p/15692968.html

    这里有一个简单的yoyo.person 表perso.json数据

    [
    {
      "model": "yoyo.person",
      "pk": 1,
      "fields": {
        "name": "yoyo",
        "age": 111
      }
    },
    {
      "model": "yoyo.person",
      "pk": 2,
      "fields": {
        "name": "yoyo2",
        "age": 22
      }
    },
    {
      "model": "yoyo.person",
      "pk": 3,
      "fields": {
        "name": "yoyo23",
        "age": 33
      }
    },
    {
      "model": "yoyo.person",
      "pk": 4,
      "fields": {
        "name": "yoyo",
        "age": 22
      }
    }
    ]
    

    以下是一样的初始化内容,perso.yml格式:

    - model: yoyo.person
      pk: 1
      fields:
        name: yoyo
        age: 111
    - model: yoyo.person
      pk: 2
      fields:
        name: yoyo2
        age: 22
    - model: yoyo.person
      pk: 3
      fields:
        name: yoyo23
        age: 33
    - model: yoyo.person
      pk: 4
      fields:
        name: yoyo
        age: 22
    

    loaddata 加载数据

    加载数据非常简单:只需调用 manage.py loaddata 是你刚创建的固定内容的文件名(如:perso.json)。
    每次你运行 loaddata,数据都会从固定内容读出,重新装入数据库。这意味着若你修改了某个固定内容创建的行,随后再次运行 loaddata ,你会丢掉所有的修改。

    # 将 person.json 中数据库导入数据库
    python manage.py loaddata person.json
    

    Django 从哪里寻找固定内容文件

    默认情况下,Django 在每个应用的 fixtures 目录中查找固定内容。你可以将配置项 FIXTURE_DIRS 设为一个 Django 需要额外寻找的目录列表。
    manage.py loaddata 时,你也能指定一个到固定内容文件的路径,这将会覆盖查找常规目录的行为。

    方式1:
    在 app 下创建一个 fixtures 目录

    json文件数据放到fixtures 目录

    这样在执行loaddata 命令的时候,会默认从每个应用目录查找初始化的内容

    python manage.py loaddata person.json
    

    方式2:
    如果不想放到app下的fixtures目录,也可以在setting文件配置FIXTURE_DIRS,用于 Django 需要额外寻找的目录列表

    FIXTURE_DIRS = ('/path/to//fixtures/',)
    

    方式3:
    manage.py loaddata 时,你也能指定一个到固定内容文件的路径,这将会覆盖查找常规目录的行为。

    参考官方文档https://docs.djangoproject.com/zh-hans/2.2/howto/initial-data/

  • 相关阅读:
    用超穷归纳证明极大理想定理
    [shell]计算未知个数数据的平均值
    C中的野指针—如何避免
    [C#学习笔记02]理解值和引用
    vim编辑器的配置让你的代码更加易读
    mipslinuxgcc交叉编译工具链搭建小结
    Ubuntu 9.10下KScope的安装
    [uC/OSII]基本操作:新建任务,分配信号量
    基于Philips MF RC522的ISO14443A标准卡读写
    Git常用命令 shuo
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15693399.html
Copyright © 2020-2023  润新知