import pymysql # 导入对数据库mysql操作的包
class InsertInfo:
'''数据初始化'''
def __init__(self):
# 数据库的链接
self.con = pymysql.connect(host='localhost', user='root', password='mysql',
database='second_hand_cars', port=3306, charset='utf8')
# 操作对象
self.cur = self.con.cursor()
self.flag = 1 # 外面大循环标志位
self.stop = 0 # 内部小循环标志位
# 菜单展示
def show_menu(self):
print('*'*50)
print('1:为customer_info添加内容')
print('2:为car_info添加内容')
print('3:显示所有')
print('4:退出')
# 运行,与菜单展示中的数字相对应
def run(self):
while self.flag == 1: # 只要flag = 1 就一直循环
self.show_menu()
num = int(input('请输入操作代码'))
if num == 1:
self.insert_customer_info()
elif num == 2:
self.insert_car_info()
elif num == 3:
self.show_all()
elif num == 4:
self.exit_this()
else:
print('输入有误')
'''输入对应的数字,调用对应的函数进行执行,在input中进行了强制数据类型转换,所以可以直接等于数字,而不必要添加引号,如果不转换,则需要引号,因为从键盘获取到的都是字符串类型'''
# 为其中一个表添加信息
def insert_customer_info(self):
while self.stop == 0: # stop的初始值为0,只要为0就一直循环
a_name = input('请输入用户名')
a_password = input('请输入密码')
a_gender = input('请输入性别')
a_age = input('请输入年龄')
a_active = input('请输入用户等级')
a_tel = input('请输入用户电话号码')
a_email = input('请输入邮箱')
a_addrs = input('请输入地址')
'''以上这些要与数据库中的字段相同,且最好一一对应,方便下面填写'''
sql = 'insert into customer_info values(%s,%s,%s,%s,%s,%s,%s,%s,%s)' # 将要传入操作函数cursor()中的对数据库操作的指令
self.cur.execute(sql, [0, a_name, a_password, a_gender, a_age, a_active, a_tel, a_email, a_addrs]) # 上面的占位符要与上面的占位符一一对应,那个0也是占位符,代表我数据库的id,这个是自增类型,所以不需要我手动写入
self.con.commit() # 提交操作
print('添加成功')
'''这里判断是否退出添加信息操作,为方便起见,直接按enter键继续添加,输入任意字符退出添加操作'''
op = input('输入任意字符返回上一层')
if op == '':
self.stop = 0
else:
self.stop = 1
'''下同,就不做注释了'''
# 为另一个表添加信息
def insert_car_info(self):
while self.stop == 0:
a_brand = input('请输入车辆品牌')
a_series = input('请输入车辆型号')
a_age = input('请输入车龄')
a_model = input('请输入车型')
a_mileage = input('请输入已行驶公里数')
a_displacement = input('请输入排量')
a_color = input('请输入车辆颜色')
a_addrs = input('请输入车牌所在地')
sql = 'insert into car_info values(%s,%s,%s,%s,%s,%s,%s,%s,%s)'
self.cur.execute(sql, [0, a_brand, a_series, a_age, a_model, a_mileage, a_displacement, a_color, a_addrs])
self.con.commit()
print('添加成功')
op = input('输入任意字符返回上一层')
if op == '':
self.stop = 0
else:
self.stop = 1
# 展示表中的所有信息
def show_all(self):
op = int(input('请输入操作:1展示customer_info, 2展示car_info'))
if op == 1:
sql = 'select * from customer_info'
self.cur.execute(sql) # 将指令传入操作函数cursor()的excute执行
print(self.cur.fetchall()) # 上面参数返回的是一个数值,代表有几条信息,这里用fetchall将信息全部展示
elif op == 2:
sql = 'select * from car_info'
self.cur.execute(sql)
print(self.cur.fetchall())
else:
print('输入有误')
# 外面的大循环退出操作
def exit_this(self):
self.flag = 0
#数据库关闭操作
def __del__(self):
self.cur.close()
self.con.close()
if __name__ == '__main__':
option = InsertInfo() # 创建对象,执行操作
option.run()
程序有点长了,然后执行的操作比较多,就不上图了,都可以执行,如果有看不懂的或者有更好的建议都可以来找我