用假数据为django项目播种

django-seed的Python项目详细描述


Django Seed


django seed使用faker库为django模型生成测试数据。为了支持较新版本的python和django,这是django_faker中的“硬分叉”。

django seed允许您编写代码来生成模型,并使用一个简单的manage.py命令为数据库设置种子!


Python 2.7, 3.xpypiTravis BuildcoverageMIT License



安装

要安装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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中char的用途   swing修复,以便显示可以同时显示十进制数和整数   java给定一个场景,找到拥有的JFXPanel   java JPA 2标准获取路径导航   java如何用JUnit测试这个类?   JSF中的java请求作用域   Spring云Zuul代理背后的java Spring OAuth授权服务器   java限制聚合返回的存储桶大小   java如何在安卓应用程序中请求超级su权限   防止超级关键字的java Checkstyle规则   java 安卓。应用程序。应用程序无法强制转换到安卓。应用程序。在回收器适配器中使用FragmentManager时的活动   使用Java的Twitter广告API   切换到4.0.1版本后,java“JavaMailSenderImpl无法解析为类型”   java没有getter方法可用于名称下bean的属性   java 0/1背包堆空间   java我无法使用断点进行调试   Jar文件名表单java代码   java调用从扩展活动的MainActivity类扩展片段的类片段