用假数据为django项目播种
django-seed的Python项目详细描述
django seed使用faker库为django模型生成测试数据。为了支持较新版本的python和django,这是django_faker中的“硬分叉”。
django seed允许您编写代码来生成模型,并使用一个简单的manage.py命令为数据库设置种子!
安装
要安装django seed,请使用pip:
pip install django-seed
或从源安装:
python setup.py install
配置
将其添加到settings.py:
中已安装的应用程序中INSTALLED_APPS = ( ... 'django_seed', )
用法
注意:在为带有外键的模型设定种子时,需要确保首先为这些模型设定种子。例如,如果appa中的模型具有appb中模型的外键,则必须首先为appb种子。
与命令一起使用
使用django seed,您可以使用manage.py seed命令从命令行为数据库设置测试数据种子。
示例:为应用程序api:
$ python manage.py seed api --number=15
就这样!现在,每个模型中有15个被播种到数据库中。
与代码一起使用
django seed提供了为django模型轻松设置测试数据库种子的方法。要在数据库中植入模型实例,请导入Seed,获取一个seeder实例,并使用add_entity方法。
例如:设定5Game和10Player对象的种子:
fromdjango_seedimportSeedseeder=Seed.seeder()frommyapp.modelsimportGame,Playerseeder.add_entity(Game,5)seeder.add_entity(Player,10)inserted_pks=seeder.execute()
播种器使用名称和列类型用相关数据填充模型。如果django seed误解了列名,您仍然可以通过向add_entity()方法添加第三个参数来指定用于填充特定列的自定义函数:
seeder.add_entity(Player,10,{'score':lambdax:random.randint(0,1000),'nickname':lambdax:seeder.faker.email(),})seeder.execute()
django seed不填充自动递增的主键,而是seeder.execute()返回按类索引的插入pks的列表:
printinserted_pks{<class'faker.django.tests.Player'>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],<class'faker.django.tests.Game'>: [1, 2, 3, 4, 5]}
测试
要在django环境中运行django测试,首先确保安装了requirement test.txt中的包,然后运行以下命令:
$ python runtests.py
或者如果您在安装的应用程序中有django_seed:
$ python manage.py test django_seed
许可证
麻省理工学院。有关详细信息,请参见LICENSE。