Faker — это фреймворк Python, который можно использовать для генерации случайных валидных учётных данных (name, email, password и другие), а также для создания баз данных, которые можно использовать для тестирования загрузки и дальнейшей обработки.
Это удобный и простой пакет, который предоставляет широкие возможности для генерации случайных данных!
Каждое отдельное свойство этого пакета упаковано в свой личный провайдер (providers) и обозначается, например применительно к 'name', как: 'faker.providers.person'.
Для работы фреймворка необходима установка библиотеки Faker:
pip install Faker
from faker import Faker
fake = Faker()
def random():
email = fake.email()
passw = fake.password()
return {"name": name, "email": email, "password": passw}
print(RegisterUser.random())
out: {'name': 'Dr. Kelly Lopez', 'email': 'cdelgado@example.net', 'password': '^5PUyJVkD4'}
В свойствах пароля можно задать следующие аргументы:
fake.password(length=16, special_chars=True, digits=True, upper_case=True, lower_case=True)
Также используя локали, можно сгенерировать имена на разных языках (по умолчанию стоит en-US):
name_ru = Faker('ru_RU').name()
name_en = Faker('en_US').name()
name_j = Faker('ja_JP').name()
return name_ru, name_en, name_j
out: ('Сидоров Любим Иосифович', 'Gregory Robinson', '石井 篤司')Можно получить и телефонный номер:
phone = fake.phone_number()
Или профессию:
job = fake.job()Теперь создадим базу данных SQLite с таблицей "users" и заполним её десятью случайными пользователями, сгенерированными с помощью Faker.
from faker import Faker
import sqlite3
# Создаём экземпляр Faker:
fake = Faker()
# Создаём подключение к базе данных:
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# Создаём таблицу в базе данных:
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
email TEXT,
address TEXT)''')
# Генерируем данные и вставляем их в таблицу:
for _ in range(10):
name = fake.name()
email = fake.email()
address = fake.address()
cursor.execute("INSERT INTO users (name, email, address) VALUES (?, ?, ?)",
(name, email, address))
# Сохраняем изменения и закрываем соединение:
conn.commit()
conn.close()
print("База данных успешно создана и заполнена данными!")
