接着上一个程序,增加往数据库中写的功能
from pymysql import *
# 创建一个商品类
class Goods(object):
# 开始时直接建立相应数据库的连接
def __init__(self):
# 建立一个连接,填入:IP地址、端口号、用户名、密码、数据库的名字、编码格式(推荐只写utf8)
self.conn = connect(host='localhost',
port=3306, user='root',
password='191656',
database='city',
charset='utf8')
# 获取 cursor 对象,cursor为数据游标,可以定位数据位置
self.cursor = self.conn.cursor()
# 查询结束时关闭数据库连接
def __del__(self):
# 关闭游标对象
self.cursor.close()
# 关闭连接
self.conn.close()
# 静态方法显示可查询列表
@staticmethod
def user_menu():
print("_" * 20 + "用户界面" + "_" * 20)
print("1.查询所有商品的信息")
print("2.查询所有商品的类型")
print("3.按照商品类型分组查询商品信息")
print('4.自己添加商品')
return input("请选择序号查询商品信息:")
# 调用sql语句查询数据库信息
def sql_link(self, link):
# 使用游标获取信息
self.cursor.execute(link)
# 遍历输出信息
for i in self.cursor.fetchall():
print(i)
# 显示所有商品信息
def show_goods_info(self):
# 查询语句
link = "select * from goods;"
# 信息内容
self.sql_link(link)
# 展示所有商品名字
def show_goods_name(self):
# 查询语句
link = "select cate_name,brand_name from goods;"
# 信息内容
self.sql_link(link)
def show_good_price(self):
# 查询语句
link = "select cate_name,group_concat(brand_name,'_',price) from goods group by cate_name;"
# 信息内容
self.sql_link(link)
def add_goods(self):
# 用户输入想要添加的商品
good_name = input('亲输入要添加的商品名:')
good_brand = input('请输入商品品牌:')
good_price = input('请输入商品的价格:')
# sql语句
link = "insert into goods (id,cate_name,brand_name,price) values(default,'{}','{}','{}')".format(good_name,
good_brand,
good_price)
print(link)
# 执行语句
self.cursor.execute(link)
# 提交sql语句,使其生效
self.conn.commit()
print('执行成功!')
def run(self):
while True:
# 1.用户界面
option = self.user_menu()
# 2.查询函数
if option == "1":
self.show_goods_info() # 所有商品信息
elif option == "2":
self.show_goods_name() # 所有商品类型
elif option == "3":
self.show_good_price() # 商品价格升序
elif option == '4':
self.add_goods()
else:
print("选项错误!")
def main():
# 创建一个商品类对象
content = Goods()
# 运行内容
content.run()
if __name__ == '__main__':
main()
代码效果:
接着选择 1 查询所有商品信息: 成功!