最近市场监管部门加大了对销售过期商品的处罚力度。很多菜店、粮店等店不大但商品品种、货号批次却非常多。这里介绍两个可以用手机扫描录入商品数据的模型,供大家二次开发,设计出一个管理商品失效日期的小程序。
模型一
import sqlite3
from pyzbar.pyzbar import decode
# 创建数据库连接
conn = sqlite3.connect('products.db')
# 创建商品信息表
conn.execute('''CREATE TABLE IF NOT EXISTS products
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
description TEXT NOT NULL)''')
# 扫描QR码并获取商品信息
result = decode(open('product_qr_code.png', 'rb').read())
if result:
# 获取商品信息
product_name = result[0].data.decode('utf-8')
product_price = result[1].data.decode('utf-8')
product_description = result[2].data.decode('utf-8')
# 插入商品信息到数据库中
conn.execute("INSERT INTO products (name, price, description) VALUES (?, ?, ?)",
(product_name, product_price, product_description))
conn.commit()
print("商品信息已保存到数据库中。")
else:
print("无法扫描QR码或获取商品信息。")
# 关闭数据库连接
conn.close()
模型二
import qrcode
from PIL import Image, ImageDraw, ImageFont
def generate_qr_code(data, output_file):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(output_file)
def add_text_to_qr_code(input_file, output_file, text):
img = Image.open(input_file)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", 30)
text_width, text_height = draw.textsize(text, font)
x = (img.width - text_width) // 2
y = (img.height - text_height) // 2
draw.text((x, y), text, font=font, fill="black")
img.save(output_file)
if __name__ == "__main__":
product_info = "商品名称: 电视机 价格: 1000元"
qr_code = generate_qr_code(product_info, "product_info.png")
add_text_to_qr_code("product_info.png", "product_info_with_text.png", "扫描二维码查看商品信息")