Ваш браузер устарел. Рекомендуем обновить его до последней версии.

Info Board


Faker’s documentation >>

Список всех Providers >>

@staticmethod - это декоратор для создания статического метода, который не привязан к состоянию экземпляра или класса >>

Этот декоратор превращает метод, определённый внутри класса, в обычную функцию, которая не имеет доступа к экземпляру класса self, поэтому её можно вызывать без создания экземпляра класса.

Генерация фейковых данных на Python

Опубликовано 12.09.2023

Faker — это фреймворк Python, который можно использовать для генерации случайных валидных учётных данных (name, email, password и другие), а также для создания баз данных, которые можно использовать для тестирования загрузки и дальнейшей обработки.

Это удобный и простой пакет, который предоставляет широкие возможности для генерации случайных данных!

Каждое отдельное свойство этого пакета упаковано в свой личный провайдер (providers) и обозначается, например применительно к 'name', как: 'faker.providers.person'.

Для работы фреймворка необходима установка библиотеки Faker:

pip install Faker

from faker import Faker
fake = Faker()

class RegisterUser:
    @staticmethod
    def random():
        name = fake.name()
        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("База данных успешно создана и заполнена данными!")