1.需要定义构造函数(init),给实例属性赋值(包括host、port、user、password和database)
2.连接数据库
3.插入数据,先在数据库中建好表,并且添加好所需要的字段
4.数据生成表中所需的字段内容,并调用插入方法
# #!/usr/bin/python
# # -*- coding: UTF-8 -*-
lst_first=['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
'何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
'云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
'乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹',
'姚', '邵', '堪', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
'熊', '纪', '舒', '屈', '项', '祝', '董', '梁']
lst_last=['明', '问', '力', '理', '尔', '点', '文', '几', '定', '本', '公', '特', '做', '外', '孩', '相', '西', '果', '走',
'将', '月', '十', '实', '向', '声', '车', '全', '信', '重', '三', '机', '工', '物', '气', '每', '并', '别', '真', '打',
'太', '新', '比', '才', '便', '夫', '再', '书', '部', '水', '像', '眼', '等', '体', '却', '加', '电', '主', '界', '门',
'利', '海', '受', '听', '表', '德', '少', '克', '代', '员', '许', '稜', '先', '口', '由', '死', '安', '写', '性', '马',
'光', '白', '或', '住', '难', '望', '教', '命', '花', '结', '乐', '色', '更', '拉', '东', '神', '记', '处', '让', '母',
'父', '应', '直', '字', '场', '平', '报', '友', '关', '放', '至', '张', '认', '接', '告', '入', '笑', '内', '英', '军',
'候', '民', '岁', '往', '何', '度', '山', '觉', '路', '带', '万', '男', '边', '风', '解', '叫', '任', '金', '快', '原',
'吃', '妈', '变', '通', '师', '立', '象', '数', '四', '失', '满', '战', '远', '格', '士', '音', '轻', '目', '条', '呢',
'病', '始', '达', '深', '完', '今', '提', '求', '清', '王', '化', '空', '业', '思']
school=['泉州五中','厦门双十','福州一中','培元中学','集美中学']
import pymysql # 先pip install pymysql
import random
class DatabaseAcess:
# 初始化属性(包括host、port、user、password和database)
def __init__(self):
self.__db_host='localhost' # 属性应私有
self.__db_port=3306 # 注意,端口是int类型,不能有引号,否则会报错
self.__db_user='root'
self.__db_password='123456'
self.__db_database='test' # 数据库名
# 连接数据库
def isConnection(self):
self.__db=pymysql.connect(
host=self.__db_host,
port=self.__db_port,
user=self.__db_user,
password=self.__db_password,
database=self.__db_database,
charset='utf8'
)
# 插入数据,先在数据库中建好表,并且添加好所需要的字段
def linesinsert(self,student_name,student_age,school_name,tel,height,sex,order_no):
try:
self.isConnection() # 连接数据库
global cursor # 创建游标
cursor=self.__db.cursor()
# sql语句中,表名需要用引号引起来,否则会报错
sql='insert into `order`(student_name,student_age,school_name,tel,height,sex,order_no) value (%s,%s,%s,%s,%s,%s,%s)' # sql插入语句
cursor.execute(sql,(student_name,student_age,school_name,tel,height,sex,order_no)) # 执行sql命令
except Exception as e:
print e # 打印报错原因
finally:
cursor.close() # 关闭游标
self.__db.commit() # 提交
self.__db.close() # 关闭数据库连接
# 数据生成表中所需的字段内容,并调用插入方法
def data_updata(self):
#stu_id=random.randint(1,100)
na1=random.choice(lst_first)
na2=random.choice(lst_last)
na3=random.choice(lst_last)
stu_name=na1+na2+na3
stu_age=random.randint(13,18)
sch_name=random.choice(school)
telephone=str(random.randint(13300000000,19999999999))
stu_height=random.randint(130,190)
stu_sex=random.randint(0,1)
orderno=random.randint(7100000,7999999)
self.linesinsert(stu_name,stu_age,sch_name,telephone,stu_height,stu_sex,orderno)
if __name__=='__main__':
db=DatabaseAcess() # 创建实例化对象
for i in range(1,21): # 循环20次,插入20条数据
db.data_updata() # 调用方法
本文参考博客: https://blog.csdn.net/z_ipython/article/details/92408758