版本信息:
Faker==3.0.0
factory-boy==2.12.0 provider:
# encoding=utf-8
import random
from faker.providers import BaseProvider class NumProvider(BaseProvider):
def num(self):
# ri = self.randomInt()
# return str(ri())
return '123aaaaa' def randomInt(self):
return lambda a=1, b=30: random.randint(a, b) def randomStr18(self, num):
ri = lambda a=0, b=9: random.randint(a, b)
s = ''
for i in range(18):
s = s + str(ri())
return s

# encoding=utf-
import factory
from factory import fuzzy
from NumProvider import NumProvider class User:
def __init__(self, name, num, age, school, city, phone):
self.name, self.num, self.age, self.school, self.city, self.phone = \
name, num, age, school, city, phone class School:
def __init__(self, schoolName):
self.schoolName = schoolName factory.Faker.add_provider(NumProvider) # 添加自定义的NumProvider class SchoolFactory(factory.Factory):
class Meta:
model = School # schoolName = factory.sequence(lambda n: 'school%04d' % n) # factory.sequence
# schoolName = factory.Faker._get_faker().random_int() #调用生成好的provider
schoolName = factory.Faker('num').generate() #调用生成好的provider class UserFactory(factory.Factory):
class Meta:
model = User name = factory.Faker("name", locale="zh_CN") # factory.Faker
num = factory.Faker("num") #调用生成好的provider
age = factory.fuzzy.FuzzyInteger() # factory.fuzzy.FuzzyInteger
city = factory.Faker("address", locale="zh_CN")
phone = factory.fuzzy.FuzzyText("", , "", "") # factory.fuzzy.FuzzyText
school = factory.SubFactory(SchoolFactory) # factory.SubFactory class Params:
shipped = factory.Trait(
name=None
) if __name__ == "__main__":
# 单个生成
# seq = []
# seq2=[]
# uf = UserFactory()
# # print(uf.__dict__)
# seq.append(uf.__dict__)
# seq2.append(UserFactory().__dict__)
# print(seq)
# print(seq2) # ##批量生成
# list = []
# fss = factory.build_batch(UserFactory, )
# for fs in fss:
# list.append(fs.__dict__)
# print(list)
##部分字段修改
# uff = UserFactory(shipped=True)
uff = UserFactory(shipped=False)
print(uff.school.__dict__)
print(uff.__dict__)
print(uff.__dir__())

最新文章

  1. 解决root用户ssh配置无密码登陆/hadoop用户照仿可以实现相同功能:hadoop用户登录并且把命令的所有root换成home/hadoop
  2. jQuery 滚动条 滚动到底部(下拉到底部) 加载数据(触发事件、处理逻辑)、分页加载数据
  3. WPF自定义控件与样式(8)-ComboBox与自定义多选控件MultComboBox
  4. 给表追加主键-----报错ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键
  5. The Daligner Overlap Library
  6. ZOJ 3822(求期望)
  7. C语言的几种取整方法
  8. PHP 文件上传功能
  9. AMD和CMD的区别
  10. 层层递进Struts1(六)自定义转换器
  11. iOS 系统架构 && 常用 framework
  12. QT5.6.0 VS2013 Win764位系统QT环境搭建过程
  13. Android相关面试题---面试官常问问题
  14. zabbix批量添加被监控windows客户端
  15. BZOJ5063旅游——非旋转treap
  16. WINDOWS 下设置单独的java环境
  17. 【Python】一些练习代码用的图片
  18. SCCM2012 R2实战系列之四:初始化配置
  19. 用开源项目FlipImageView实现图片的翻转效果
  20. ASTER:An Attentional Scene Text Recognizer with Flexible Rectification

热门文章

  1. 2019 大众书网Java面试笔试题 (含面试题解析)
  2. flink PageRank详解(批量迭代的页面排名算法的基本实现)
  3. ORACLE百分比分析函数RATIO_TO_REPORT() OVER()
  4. windows 桌面文件变成.link解决方案
  5. 交叉编译tmux
  6. NOIp常用的算法
  7. 前几天去电脑城升级了下主机配置(酷睿i3-9100F)
  8. Java精通并发-Condition方法实现分析与讲解
  9. java String、String.concat和StringBuilder性能对比
  10. 201871010115——马北《面向对象程序设计JAVA》第二周学习总结