반응형

안녕하세요.

JohnComputer입니다.

 

이따금씩 개발 테스트를 진행하다 보면 임의적인 데이터를 넣고 테스트를 진행해야 할때가 많은데요.

그렇다고 또 데이터를 만들기 위해서 까다로운 RDB의 요구 조건을 다 들어주면서 넣다 보면 참 힘듭니다.

또 언제 전부 INSERT VALUES... 하고 있기도 힘들고요.

그렇게 해서 찾게 된 이번 오픈소스! FAKER 사용 방법을 같이 정리해서 올려드리려고 합니다.

 

1. 기본 데이터베이스 만들기

CREATE DATABASE test

CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
City varchar(255),
RegistDate DateTime
);

- 처음 부터 하시는 분들도 계실 수 있으니 간단한 예제도 넣어서 같이 설명 드리겠습니다.

 

기본 데이터베이스를 만들게 되면 위 이미지와 같이 Table이 생성됩니다.

 

2. Python

import pymysql.cursors
from faker import Faker

MYSQL_ENDPOINT = "127.0.0.1"
MYSQL_PORT = 3306
DB_ID = "ID"
DB_PW = "PASSWD"


# DB rows LIST 생성
sql_rows = []

mysqldb = pymysql.connect( host=MYSQL_ENDPOINT, user=DB_ID, password=DB_PW, database="test", port=MYSQL_PORT, charset='utf8mb4')
_Connectiondb = mysqldb.cursor()

# Faker.seed(Number) 데이터 넘버 FIX
fake = Faker()



for _ in range(2000):
    sql_row = '({},'"'{}'"','"'{}'"','"'{}'"','"'{}'"')'.format(fake.random_number(), fake.last_name(), fake.first_name(), fake.city(), fake.date_time())
    sql_rows.append(sql_row)
sql = "INSERT INTO Persons(PersonId, LastName, Firstname, City, RegistDate) VALUES " + ','.join(sql_rows)
#할당 해제
sql_rows = []
_Connectiondb.execute(sql)
mysqldb.commit()

 

위 코드는 테스트 데이터를 보여드리기 위한 Python입니다.'

아래 주의 사항과 함께 사용방법 적어둘 테니 잘 이용해보시기 바랍니다.

1. 기본설치
 
import pymysql.cursors
from faker import Faker

기본 세팅으로 pymysql, Faker를 설치해주셔야합니다.

pip install pymysql, Faker 등을 진행해주세요.

 

2. 사용형식

문자 데이터의 경우 '"'{}'"'
날짜 데이터의 경우 '"'{}'"'
숫자 데이터의 경우 {}

 

3. 사용되는 함수

fake.random_number() : 랜덤넘버
fake.name() : 이름 출력 / fake.first_name(), fake.last_name()
fake.email() : 이메일
fake.city() : 도시
fake.date_time() : Datetime
fake.address() : 주소 (4759 William Haven Apt. 194 West Corey, CA 90152)
fake.country() : 국가 (Nigeria)
fake.random_digit() : 0~9 랜덤 Number
fake.random_number() : 자릿수와 상관 없는 Number

기타 함수

https://faker.readthedocs.io/en/master/providers/baseprovider.html

 

faker.providers — Faker 17.6.0 documentation

© Copyright 2014, Daniele Faraglia Revision 5de6bf3f.

faker.readthedocs.io

 

반응형