2

为了能够查看我的 django 应用程序的外观并处理大量数据,我想以编程方式在数据库中生成数据。在 django 文档中,他们建议使用fixtures oder SQL statements,但我宁愿使用简单的python循环通过使用django模型类生成数千个随机条目。

我怎样才能执行这样的脚本?我正在使用 south 进行数据库迁移,但即使在那里,似乎也不支持这样的数据生成。

4

3 回答 3

3

您可以使用django-whatever(增强的 django-any)——它可以轻松创建虚拟数据。

这是我的示例(在 *app_name*/management/commands/dummyitems.py 中):

class Command(BaseCommand):
    args = '[count]'

    def handle(self, count=20, *args, **options):

        try:
            i = int(count)
        except ValueError:
            print u'n is to be a number!'
            sys.exit(1)

        for _ in xrange(i):
            # you can pass params explicitly
            m = any_model(MY_MODEL_CLASS, image=None)
            m.save()

因此,如果我需要 100 个虚拟项目,我会运行:

$ python manage.py dummyitems 100
于 2012-08-26T11:56:09.553 回答
2

直接回答您的问题 - 此类脚本作为自定义管理命令运行,但使用像 Northwind 这样的预填充数据库会更简单。请参阅this answer了解如何为 django 实现它。

于 2012-08-26T11:49:00.557 回答
0

首先安装这个包https://pypi.org/project/model-mommy/然后在 django shell 上运行这个代码。它为项目中的所有模型生成假数据。

from django.apps import apps
from django.conf import settings
from model_mommy import mommy


for app in settings.INSTALLED_APPS:
    try:
        app_models = apps.get_app_config(app).get_models()
    except:
        continue
    for model in app_models:
        try:
            mommy.make(model, _quantity=100)
        except:
            print('error')
于 2021-02-17T07:10:37.423 回答