【问题标题】:Tool for automatically creating data for django model [closed]为 django 模型自动创建数据的工具 [关闭]
【发布时间】:2011-08-04 06:44:15
【问题描述】:

我想测试the Django tutorial 中解释的模型。有没有一种自动的方法来用样本数据填充它们?就是其中之一:

class Book(models.Model):
    name = models.CharField(max_length=300)
    pages = models.IntegerField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    rating = models.FloatField()
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
    pubdate = models.DateField()

有什么建议吗?

【问题讨论】:

标签: python django database django-models


【解决方案1】:

我自己没用过,但django-autofixture 看起来很像你想要的。

此网格中列出了其他类似的应用程序:https://www.djangopackages.com/grids/g/fixtures/

【讨论】:

  • 这看起来很整洁,看起来很像dilla。
  • django-mockups 似乎是 django-autofixtures 的最新分支:github.com/sorl/django-mockups。我想我也应该仔细看看这些工具:-)
  • 看起来sorl/django-mockups 上的活动几年前就停止了,而 django-autofixture 最近有活动。
  • 不适用于 django3.0 :( 需要 django.utils.six
【解决方案2】:

http://www.generatedata.com/

这有一些不是 Django 特定的非常好的通用字段类型

【讨论】:

  • 我已经多次使用生成数据 - 需要注意的有用工具。
【解决方案3】:

django-dilla 专门用于使用“垃圾邮件”数据填充 django 模型。下面是在定义一些设置后直接取自站点示例。它甚至可以让您定义自己的“垃圾邮件发送者”,以特定格式生成数据。

$ ./manage.py run_dilla --cycles=100
Dilla is going to spam your database. Do you wish to proceed? (Y/N)Y
Dilla finished!
    2 app(s) spammed 900 row(s) affected, 2498 field(s) filled, \
    502 field(s) ommited.

【讨论】:

    【解决方案4】:

    结帐 django-mockups:https://github.com/sorl/django-mockups

    它将自动为任何模型生成数据,包括外键和多对多。您可以开箱即用地运行它,为其提供最大的关系深度,它会生成充分利用您的模型的数据。

    您还可以编写自己的生成器和工厂来细粒度地控制关系并生成特定于您的应用程序的数据,而不仅仅是随机数据。我刚刚在一个项目中使用它,它确实为我节省了几天的设置测试数据的工作。

    【讨论】:

    • 看起来这个分叉上的活动几年前就停止了,而 django-autofixture 最近有活动。
    【解决方案5】:

    如果问题仍然存在,您可以尝试包django-mimesis。 它提供了根据字段类型用不同语言的虚拟数据填充数据库。您也可以使用指定的主题自动下载一些图片。并不总是很好用,有时图片的主题不匹配。但对我来说已经足够了。

    【讨论】:

      【解决方案6】:

      Django-eadred 专为“生成样本数据”而设计。

      正如其文档所述

      eadred 允许您使用模型制造商、工厂、固定装置、随机种子以编程方式生成数据——无论您需要什么。

      此外,eadred 还提供库函数,使生成数据更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        • 2020-02-19
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多