一个用来往数据库表生成大量数据的样例

"""
请参考以下Python脚本示例,可以批量往MySQL数据库guests表的realname,phone,email,sign,event_id字段插入3000条数据
"""
import random
import string
import pymysql

# MySQL数据库连接配置
db_config = {
    'host': '175.178.xx.xx',
    'user': 'root',
    'password': 'password',
    'db': 'guests',
    'charset': 'utf8mb4',
    'cursorclass': pymysql.cursors.DictCursor
}

# 生成随机字符串
def random_string(length):
    letters = string.ascii_lowercase
    return ''.join(random.choice(letters) for i in range(length))

# 生成随机手机号码
def random_phone():
    prefix = ['130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '150', '151', '152', '153', '154', '155', '156', '157', '158', '159', '186', '187', '188', '189']

    return random.choice(prefix) + ''.join(random.choice(string.digits) for i in range(8))

# 连接MySQL数据库
conn = pymysql.connect(**db_config)

# 循环插入3000条数据
for i in range(3000):
    # 生成随机数据
    realname = random_string(6)
    phone = random_phone()
    email = realname + '@mail.com'
    sign = random_string(20)
    event_id = random.randint(1, 10)

    # 插入数据
    with conn.cursor() as cursor:
        sql = "INSERT INTO guests (realname, phone, email, sign, event_id) VALUES (%s, %s, %s, %s, %s)"
        cursor.execute(sql, (realname, phone, email, sign, event_id))
    conn.commit()

# 关闭数据库连接
conn.close()

你可能感兴趣的:(数据库,python,生成大量数据)