本文内容:

  1. faker的介绍
  2. faker的使用
  3. 小例子:生成随机的数据表信息

首发日期:2018-06-15


faker介绍:

  • faker是python的一个第三方模块,是一个github上的开源项目。
  • 主要用来创建一些测试用的随机数据。

官方文档:https://faker.readthedocs.io/en/master/index.html


faker的使用:

1.安装模块

pip3 install Faker

【使用faker也能识别成功,不过新版已经更新为Faker】

2.导入模块

from faker import Faker

【主要使用的是Factory类,而导入Faker,会同时导入Factory】

3.使用步骤:

  • 3.1初始化:

    fake=Faker()
  • 3.2.调用方法:
    • 利用Faker对象调用方法,调用方法的返回值就是随机的数据。

    • 不同的数据需要调用不同的方法,常见方法参见下面。
from faker import Faker

# fake=Faker() #默认生成美国英文数据
fake=Faker(locale='zh_CN') # 地址类
print("地址类".center(20,"-"))
print(fake.address())#海南省成市丰都深圳路p座 425541
print(fake.street_address())#深圳街X座
print(fake.street_name())#长沙路
print(fake.city_name(),fake.city())#兰州 贵阳市 (相差“市”)
print(fake.province())#陕西省 #公司类:
print("公司类".center(20,"-"))
print(fake.company())#惠派国际公司信息有限公司
print(fake.company_suffix())#网络有限公司
print(fake.company_prefix())#鑫博腾飞 #个人信息类
print("个人信息类".center(20,"-"))
print(fake.name())#东浩
print(fake.simple_profile())
#{'username': 'leihan', 'name': '武帅', 'sex': 'F', 'address': '吉林省淮安市双滦家街C座 210434', 'mail': 'lishao@hotmail.com', 'birthdate': '1988-11-12'}
print(fake.user_name(),fake.password(special_chars=False))#ajiang zI2QbHy02p #文章类
print("文章类".center(20,"-"))
print(fake.word())#当前
print(fake.words(3))#['欢迎', '支持', '图片']
print(fake.sentence(3))#精华有关一些.
print(fake.paragraph())#大家电话空间一起操作图片要求.上海发展到了之间用户也是的人.必须记者关系介绍注册.用户时候投资发布.

常用方法:

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.company_email():企业邮箱
  • fake.email():邮箱

 

个人信息类:

  • fake.name():姓名

  • fake.user_name(*args, **kwargs):用户名,只是随机的英文姓名组合,一般是6位
  • fake.phone_number():电话号码
  • fake.simple_profile(sex=None):简略个人信息,包括用户名,姓名,性别,地址,邮箱,出生日期。比如{'username': 'chao', 'name': '胡秀兰', 'sex': 'M', 'address': '宁夏回族自治区玉市沙湾宁德路t座 873713', 'mail': 'uxiao@yahoo.com', 'birthdate': '1998-06-12'}
  • fake.profile(fields=None, sex=None):详略个人信息,比简略个人信息多出公司名、血型、工作、位置、域名等等信息。
  • 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:

想了解Faker的更多用法,可以参考官方文档:https://faker.readthedocs.io/en/master/index.html
 
 

小例子:生成随机的数据表信息

注意:这里为了例子简便,对于数据库操作就直接使用“命令式”的了,而不使用ORM模型式的了。

实现过程:

  1. 利用pymysql连接数据库
  2. 创建表
  3. 利用fake格式化要插入的数据
  4. 利用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()

结果:


Python:随机生成测试数据的模块--faker的基本使用的更多相关文章

  1. 用python随机生成数据,再插入到postgresql中

    用python随机生成学生姓名,三科成绩和班级数据,再插入到postgresql中. 模块用psycopg2 random import random import psycopg2 fname=[' ...

  2. Python随机生成验证码的两种方法

    Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法方法一:利用range Python随机生成验证码的方法有很多,今天给大家列举两种 ...

  3. python随机生成个人信息

    python随机生成个人信息 #!/usr/bin/env python3 # -*- coding:utf-8 -*- import sys import random class Personal ...

  4. python随机生成库faker库api详解

    # -*- coding: utf-8 -*- # @Author : FELIX # @Date : 2018/6/30 9:49 from faker import Factory # zh_CN ...

  5. Python 随机(random)模块的不可预测之美

    1 . 概念 1.1 真.伪随机数 大部分的计算机语言都会提供 API 生成随机数,此类 API 称为随机数生成器. 计算机可以用随机数模拟现实世界中的各种随机概率问题,没有随机生成器的编程语言不是& ...

  6. python随机生成手机号码

    一句话生成电话号码random.choice(['139','188','185','136','158','151'])+"".join(random.choice(" ...

  7. python 随机生成固定长度的字串

    from random import Random#随机生成4到20位的用户名def random_username(): username = '' chars = 'AaBbCcDdEeFfGgH ...

  8. Python 随机生成有效手机号码及身份证

    中国那么大,人那么多,几乎人手一部手机.手机号码已经作为各大互联网站的注册账户.同样,身份证更是如此.以下是生成有效手机号码和身份证号. 身份证需要下载districtcode.txt这个文件:htt ...

  9. python随机生成6位数验证码

    #随机生成6位数验证码 import randomcode = []for i in range(6):    if i == str(random.randint(1,5)):        cod ...

随机推荐

  1. ubuntu环境下编译linux内核问题解决备忘

    在使用比较新的gcc编译内核时,经常遇到这个问题: 问题一: 提示: mkimage" command not found - U-Boot images will not be built ...

  2. 音频科普---oggs

    做为一个做音频的人,很多基础的东西还是要牢记的.最近一个客户用ogg格式的音频,感觉这个很陌生,就翻了这方面的 资料.好比是认识一个大牛,只有在你有一个困扰你很久的困难问题被他瞬间解决的时候,才知道什 ...

  3. mongodb3.x主从配置及备份

    本文将介绍下mongodb主从配置及备份 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  4. Jpush极光推送的一些心得

    在集成极光推送的时候,test完全正常.部署到服务器后只发送一条推送之后推送不继续发送.经排查: 2018-06-28 10:24:26.394 [ThreadPoolTaskExecutor-4] ...

  5. Ocelot 使用

    官方文档:http://ocelot.readthedocs.io/en/latest/introduction/gettingstarted.html 新建两个Asp.net core API项目 ...

  6. eclipse svn 忽略 target目录

    这个build失败的解决方案就是不要把你项目的 target目录放在src repository 里面,还有 .project 和 .classpath最好也别放到src repository 里. ...

  7. Facelets应用程序的生命周期

    当客户端(如浏览器)向使用Facelets创建的页面发出新的请求时,会创建一个新的组件树或 javax.faces.component.UIViewRoot将其创建并放入FacesContext. 该 ...

  8. zmq setsockopt()

    zmq.RCVTIMEO:在一个recv操作返回EAGAIN错误前的最大时间 设置socket的接收操作超时时间.如果属性值是0,zmq_recv(3)函数将会立刻返回,如果没有接收到任何消息,将会返 ...

  9. sass重构响应式unofficial‘s博客轻松适应移动端

    前言: 刚刚玩博客园几天时间,发现挺不错的,对于我这个懒人又是一个爱折腾的人来说挺不错的,对于上班玩电脑,下班玩手机的用户来说,博客园中我的博客有一点给我的感觉不是很友好,电脑端看起来很美观的一个页面 ...

  10. WIN7 环境下搭建 PHP7(64 位)操作步骤

    WIN7 环境下搭建 PHP7(64 位)操作步骤 一.安装与配置 Apache 1.下载 Apache下载地址:https://www.apachelounge.com/download/ 2.安装 ...