将数据导入Django的好方法

edu*_*222 2 python django

我想定期将数据导入Django项目.我需要告诉提供商我的数​​据我想要接收数据的格式.我应该在Json,XML,CSV中要求它吗?

人们通常如何在Django中处理这个问题?

Mat*_*son 9

Django有一个导入数据的整个框架,名为Fixtures.你可以在这里阅读有关可用格式(JSON肯定在那里):https://docs.djangoproject.com/en/dev/howto/initial-data/

还有一些数据应该是什么样的例子.如:

[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

如果将其保存为beatles.json,则可以通过运行导入它python manage.py loaddata /path/to/beatles.json

  • 如果OP正在将*附加数据*加载到具有*现有数据*的模型中,我认为这不会起作用.`loaddata` 1)*需要*'pk`(主键)字段(没有错误检查),2)绕过任何`.save()`处理.在实时系统中,'pk`的下一个值是移动目标,因此"猜测"它并不容易.如果你使用现有对象的'pk`,你将覆盖该对象.* (2认同)