• 数据库练习题


    修改商品管理的作业,把数据改为从数据库中获取,
    需要自己建表
     
    定义一个工具写mysql 的
    import pymysql,xlwt
    import traceback,hashlib
    MYSQL_INFO = {
    'host':'118.24.3.40',
    'user':'jxz',
    'password':'123456',
    'db':'jxz',
    'charset':'utf8',
    'autocommit':True
    }

    def execute_sql(sql):
    conn = pymysql.connect(**MYSQL_INFO) #xx=xxx,xx=xx,
    cur = conn.cursor(pymysql.cursors.DictCursor)
    try:
    cur.execute(sql)
    except:
    print('sql不正确')
    traceback.print_exc()
    else:
    return cur.fetchall() #None []
    finally:
    conn.close()
    cur.close()

    def write_excel(name,data):
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet1')
    for index, key in enumerate(data[0]): # 写表头
    sheet.write(0, index, key)
    for row, item in enumerate(data, 1): # 写数据
    for col, value in enumerate(item.values()):
    sheet.write(row, col, value)

    book.save(name + '.xls')


    def my_md5(s):
    s = str(s)
    s = s.encode()
    m = hashlib.md5(s) # bytes,不可逆
    result = m.hexdigest()
    return result



    作业讲解:

    import tools

    def get_single_product(name):
    sql = 'select * from tmz_ljj_commodity where trade_name = "%s";' % name
    return tools.execute_sql(sql)

    def is_digit(number):
    s = str(number)
    if s.isdigit():
    if int(s) > 0:
    return True

    def is_price(price): #>0的整数和小数都可以 #1.7
    s = str(price)
    if is_digit(s):
    return True
    else:
    if s.count('.') == 1: # 1.3
    left, right = s.split('.')
    if left.isdigit() and right.isdigit(): # 正小数 #0.0
    if float(s)>0:
    return True

    def show_product():
    product_name = input('请输入商品名称:').strip()
    if product_name:
    if product_name == 'all':
    sql = 'select * from tmz_ljj_commodity;'
    print(tools.execute_sql(sql))
    else:
    product = get_single_product(product_name)
    if product:
    print('商品信息:',product)
    else:
    print('你输入的商品不存在')
    else:
    print('不能为空')

    def add_product():
    product_name = input('请输入商品名称:').strip()
    price = input('请输入商品价格:').strip()
    count = input('请输入商品数量:').strip()
    if product_name and price and count:
    if is_price(price) and is_digit(count):
    if get_single_product(product_name):
    print('商品已经存在')
    else:
    insert_sql = 'insert into tmz_ljj_commodity (trade_name,count,price) '
    'values ("%s",%s,%s);' % (product_name, count, price)
    tools.execute_sql(insert_sql)
    print('商品新增成功!')

    else:
    print('价格/数量不合法')
    else:
    print('不能为空')


    def modify_product():
    product_name = input('请输入商品名称:').strip()
    price = input('请输入商品价格:').strip()
    count = input('请输入商品数量:').strip()
    if product_name and price and count:
    if is_price(price) and is_digit(count):
    if get_single_product(product_name):
    sql = 'update tmz_ljj_commodity set price=%s,count=%s where trade_name="%s";' %(
    price,count,product_name
    )
    tools.execute_sql(sql)
    print('商品修改成功')
    else:
    print('商品不存在')
    else:
    print('价格/数量不合法')
    else:
    print('不能为空')


    def delete_product():
    product_name = input('请输入商品名称:').strip()
    if product_name:
    if get_single_product(product_name):
    sql='delete from tmz_ljj_commodity where trade_name="%s"; ' % product_name
    tools.execute_sql(sql)
    print('商品已删除')
    else:
    print('商品不存在')
    else:
    print('不能为空')


    choice = input('1、查看商品 2、新增 3、修改 4、删除: ')

    func_map = {'1':show_product,'2':add_product,'3':modify_product,'4':delete_product}
    if choice in func_map:
    func_map[choice]()
    else:
    print('请输入正确的选项!')
     
  • 相关阅读:
    实现一个基本的静态文件服务的Web服务器
    Http模块
    Java环境
    HelloWorld
    HTTP(s)
    第16条:复合优先于继承
    Tomcat配置https
    第15条:使可变性最小化
    第14条:在公有类中使用访问 方法而非公有域
    第13条:使类和成员的可访问性最小化
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/14533031.html
Copyright © 2020-2023  润新知