还在手动造数据吗?不如试试这个----Faker

在日常工作中,开发想要测试功能,测试想要验证某个功能,没有数据时就需要手动在页面上创建数据。手工造数据耗时又费力,有没有更加方便的方法呢?

今天介绍一个python库----Faker。Faker是一个python的开源项目,地址:https://github.com/joke2k/faker
使用Faker,只需要调用Faker的方法,就能生成各种类型的数据。如生成不同的名称,地址,电话号等信息。

使用方法
安装: pip install faker

from faker import Faker

#指定文化选项,有中文,英文,德文,不同文化生成对应不同文化的信息
fake=Faker(locale='zh_CN')
#生成名称
print(fake.name()) 
#地址
print(fake.address())
#电话号
print(fake.phone_number())
#简单的人物信息
print(fake.simple_profile())

输出效果

夏桂香
甘肃省佳县孝南谭街v座 557314
13325816618
{'username': 'xiuyinggao', 'name': '袁丹', 'sex': 'M', 'address': '江西省强市清城南宁路X座 402774', 'mail': '[email protected]', 'birthdate': datetime.date(1939, 5, 30)}

Faker中包含多种方法,如地址信息类、基础信息类、邮箱信息、网络基础信息类、浏览器信息类、数字信息类、文字加密类等。
常用的方法
address():详细地址
ssn():生成身份证号
company():随机公司名(长)
phone_number():随机生成手机号
name():随机生成全名
email():普通邮箱
ipv4():随机IP4地址
url():随机URL地址
paragraph():随机生成一个段落
text():随机生成一篇文章

向数据库插入数据
通过pymysql库来连接MySQL数据库,执行sql语句完成数据添加过程。

import pymysql
from faker import Faker

#连接数据库
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", db="test_user_info",
                       charset="utf8")
cursor = conn.cursor()
fake = Faker("zh-CN")
#插入20条数据
for i in range(20):
    try:
        #使用sql语句插入,因为我的数据库中已经建好了表,这里直接insert了
        sql = """insert into user_info(id,type,username,password,name,phone,email) 
        values('%s','Person','%s','%s','%s','%s','%s')""" \
              % (fake.numerify(),fake.user_name(), fake.password(length=32,special_chars=False),fake.name(),fake.phone_number(),fake.email())
        cursor.execute(sql)
    except Exception:
        sql = """insert into user_info(id) values (fake.numerify())"""
        cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()

效果

image.png

你可能感兴趣的:(还在手动造数据吗?不如试试这个----Faker)