The content of this article:
- Introduction of Faker
- Use of Faker
- Small example: Generate random data table information
Starting Date: 2018-06-15
Faker Introduction:
- Faker is a third-party module of Python and is an open source project on GitHub.
- Used primarily to create some random data for testing purposes.
Official Document: Https://faker.readthedocs.io/en/master/index.html
Use of Faker:
1. Installing the module
PIP3 Install Faker
"The use of Faker can also identify success, but the new version has been updated to Faker"
2. Import the module
from Import Faker
"The main use is the factory class, and import Faker, will import factory"
3. Steps to use:
- 3.1 Initialization:
Fake=faker ()
- Faker () calls the Create method of the factory, common parameter options:
- Used to generate localized data: Locale "is en_us by default, so the generated data is American English"
- ZH-CN representative uses the Chinese version
- For more country versions, you can refer to Https://faker.readthedocs.io/en/master/index.html#localization
- Providers is a "provider" that contains a number of generators that generate random data, such as a generator that produces random names, and a generator that contains random addresses. If we want to define the rules for the randomly generated data, then we need to customize the providers. How to generate a providers, you can refer to Https://faker.readthedocs.io/en/master/index.html#how-to-create-a-provider
- 3.2. Call Method:
- Using the Faker object call method, the return value of the calling method is random data.
- Different data needs to call different methods, see below for common methods.
fromFakerImportFaker#fake=faker () #默认生成美国英文数据Fake=faker (locale='ZH_CN')#Address classPrint("Address class". Center (20,"-"))Print(Fake.address ())#Hainan Province Cheng City Fengdou Shenzhen Road p block 425541Print(Fake.street_address ())#block X, Shenzhen StreetPrint(Fake.street_name ())#Changsha RoadPrint(Fake.city_name (), fake.city ())#Lanzhou Guiyang (difference "City")Print(Fake.province ())#Shaanxi Province#Company class:Print("Company Class". Center (20,"-"))Print(Fake.company ())#Hui Send International Company Information Co., Ltd.Print(Fake.company_suffix ())#Network Co., Ltd.Print(Fake.company_prefix ())#xin Bo Tengfei#Personal Information CategoryPrint("Personal Information Category". Center (20,"-"))Print(Fake.name ())#DonghaoPrint(Fake.simple_profile ())#{' username ': ' Leihan ', ' name ': ' Wu Shuai ', ' sex ': ' F ', ' address ': ' Block C, Huaian Shuangluan House, Jilin Province 210434 ', ' Mail ': ' [email protected] ', ' birth Date ': ' 1988-11-12 '}Print(Fake.user_name (), Fake.password (Special_chars=false))#Ajiang zi2qbhy02p#Article ClassPrint("Article Class". Center (20,"-"))Print(Fake.word ())#CurrentPrint(Fake.words (3))#[' Welcome ', ' support ', ' pictures ']Print(Fake.sentence (3))#essence about some.Print(Fake.paragraph ())#everyone in the telephone space to work with the picture requirements. Shanghai has developed into a user as well as a person. Must be a journalist relationship registration. User Time investment release.
Common methods:
Https://faker.readthedocs.io/en/master/locales/zh_CN.html as the main use of Chinese data, so provide a common method example is Chinese. If you want to know anything else, you can click on other languages in the official network and refer to the sample results, but the methods are basically the same.
Address Information class:
- Fake.address (): Full address, such as Hainan Province Cheng City Fengdou Shenzhen road block P 425541
- Fake.street_address (): Street + address, for example, Xingcheng Road, Block a
- Fake.street_name (): Street name, such as Yidou Street
- Fake.city_name (): City name, such as Lanzhou
- Fake.city (): Cities, such as Lanzhou City
- Fake.province (): province name, such as Shaanxi
- Fake.postcode (): Zip code
- Fake.country (): Country
Company Information Category:
- Fake.company (): company name, such as Hui Pi International Company Information Co., Ltd.
- Fake.company_suffix (): Company name suffix (company nature), such as Network Co., Ltd.
- Fake.company_prefix (): Company name prefix, such as Xin Bo Tengfei
Date class:
- Fake.date (pattern= "%y-%m-%d", End_datetime=none)
- Fake.year (): Random year
- Fake.day_of_week (): Random number of weeks
- Fake.time (pattern= "%h:%m:%s", End_datetime=none): Random Time
Network class:
Personal Information Category:
Fake.name (): Name
Fake.user_name (*args, **kwargs): username, just a random combination of English names, typically 6-bit
Fake.phone_number (): Phone number
Fake.simple_profile (Sex=none): Brief personal information, including user name, name, gender, address, email, date of birth. For example {' username ': ' Chao ', ' name ': ' Hu Shulan ', ' sex ': ' M ', ' address ': ' Shawan Ningde Road in Ningxia Hui Autonomous Region ' t block 873713 ', ' Mail ': ' [email protected] ', ' Birt Hdate ': ' 1998-06-12 '}
Fake.profile (Fields=none, Sex=none): Detailed slightly personal information, more than a brief personal information about the company name, blood type, work, location, domain name and so on.
- Fake.password (): Password
- Parameter options: Length: Password size, Special_chars: Whether special characters can be used, digits: whether it contains a number, Upper_case: Whether it contains uppercase letters, Lower_case: Whether it contains a lowercase letter.
- Default: length=10, Special_chars=true, Digits=true, Upper_case=true, lower_case=true
- Fake.job (): Work
Article class:
- Fake.word (Ext_word_list=none): Random words
- Ext_word_list can be a list, then words are taken from the list
- Fake.words (Nb=3, Ext_word_list=none): random multiple words
- NB is the number of words for words to return how many
- Fake.sentence (nb_words=6, Variable_nb_words=true, Ext_word_list=none): Random phrase (will include phrase end marker dot)
- Fake.paragraph (nb_sentences=3, Variable_nb_sentences=true, Ext_word_list=none): Random Paragraph
- Fake.paragraphs (Nb=3, Ext_word_list=none): multiple random paragraphs
Data type class:
- Fake.pystr (Min_chars=none, max_chars=20): Random string of custom lengths
- Fake.pyint (): Random integer
PS:
想了解Faker的更多用法,可以参考官方文档:https://faker.readthedocs.io/en/master/index.html
Small example: Generate random data table information
Note: For example, it is easy to use "imperative" for database operation, instead of using ORM model.
Implementation process:
- Connecting Databases with Pymysql
- Create a table
- Format the data to be inserted using fake
- Executing an INSERT statement with Pymysql
Code:
ImportPymysql fromFakerImportFakerconn=pymysql.connect (host="localhost", port=3306,user="Root", password="123456", db="it", charset="UTF8") Cursor=conn.cursor ()#This gives the table structure, and if you use a table that already exists, you can not create the table. Sql="""CREATE TABLE user (id int PRIMARY KEY auto_increment,username varchar, password varchar, address varchar (35)) /c6>"""cursor.execute (SQL) fake=faker ("ZH-CN") forIinchRange (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 ()
Results:
Python: Basic use of module--faker for randomly generated test data