本文内容:
- faker的介绍
- faker的使用
- 小例子:生成随机的数据表信息
首发日期:2018-06-15
faker介绍:
- faker是python的一个第三方模块,是一个github上的开源项目。
- 主要用来创建一些测试用的随机数据。
官方文档:https://faker.readthedocs.io/en/master/index.html
faker的使用:
1.安装模块
【使用faker也能识别成功,不过新版已经更新为Faker】
2.导入模块
【主要使用的是Factory类,而导入Faker,会同时导入Factory】
3.使用步骤:
- 3.1初始化:
- Faker()调用的是Factory的create方法,常用参数选项:
- 用于生成本地化数据:locale【默认情况下是en_US,所以生成的数据是美式英文的】
- zh-CN代表使用中国版
- 想了解更多国家版本,可以参考 https://faker.readthedocs.io/en/master/index.html#localization
- providers是一个包含了多种生成随机数据的生成器的“提供者”,比如他包含了生产随机姓名的生成器,包含了随机地址的生成器。如果我们想要自己定义随机生成的数据的规则,那么我们需要自定义providers。如何生成一个providers,可以参考https://faker.readthedocs.io/en/master/index.html#how-to-create-a-provider
- 用于生成本地化数据:locale【默认情况下是en_US,所以生成的数据是美式英文的】
- Faker()调用的是Factory的create方法,常用参数选项:
- 3.2.调用方法:
- 利用Faker对象调用方法,调用方法的返回值就是随机的数据。
- 不同的数据需要调用不同的方法,常见方法参见下面。
常用方法:
https://faker.readthedocs.io/en/master/locales/zh_CN.html 由于主要使用中文数据,所以提供常见的方法示例是中文的。想要了解其他的,可以在官网点击其他语言,参考示例结果,不过方法大体上都是相同的。
地址信息类:
- fake.address():完整地址,比如海南省成市丰都深圳路p座 425541
- fake.street_address():街道+地址,比如兴城路A座
- fake.street_name():街道名,比如宜都街
- fake.city_name():城市名,比如兰州
- fake.city():城市,比如兰州市
- fake.province():省份名,比如陕西省
- fake.postcode():邮编
- fake.country():国家
公司信息类:
- fake.company():公司名,比如惠派国际公司信息有限公司
- fake.company_suffix():公司名后缀(公司性质),比如网络有限公司
- fake.company_prefix():公司名前缀,比如鑫博腾飞
日期类:
- fake.date(pattern="%Y-%m-%d", end_datetime=None)
- fake.year():随机年份
- fake.day_of_week():随机星期数
- fake.time(pattern="%H:%M:%S", end_datetime=None):随机时间
网络类:
个人信息类:
-
fake.name():姓名
- fake.password():密码
- 参数选项:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母。
- 默认情况:length=10, special_chars=True, digits=True, upper_case=True, lower_case=True
- fake.job():工作
文章类:
- fake.word(ext_word_list=None):随机词语
- ext_word_list可以是一个列表,那么词语会从列表中取
- fake.words(nb=3, ext_word_list=None):随机多个词语
- nb是数量,对于words来说是返回多少个词语
- fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None):随机短语(会包括短语结束标志点号)
- fake.paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None):随机段落
- fake.paragraphs(nb=3, ext_word_list=None):多个随机段落
数据类型类:
- fake.pystr(min_chars=None, max_chars=20):自定义长度的随机字符串
- fake.pyint():随机整数
PS:
小例子:生成随机的数据表信息
注意:这里为了例子简便,对于数据库操作就直接使用“命令式”的了,而不使用ORM模型式的了。
实现过程:
- 利用pymysql连接数据库
- 创建表
- 利用fake格式化要插入的数据
- 利用pymysql执行插入语句
代码:
import pymysql from faker import Faker conn=pymysql.connect(host="localhost",port=3306,user="root",password="123456",db="it",charset="utf8") cursor=conn.cursor() #这里给出表结构,如果使用已存在的表,可以不创建表。 sql=""" create table user( id int PRIMARY KEY auto_increment, username VARCHAR(20), password VARCHAR(20), address VARCHAR(35) ) """ cursor.execute(sql) fake=Faker("zh-CN") for i in range(20): sql="""insert into user(username,password,address) values('%s','%s','%s')"""\ %(fake.user_name(),fake.password(special_chars=False),fake.address()) cursor.execute(sql) conn.commit() cursor.close() conn.close()
结果: