首页 > 编程语言 >python开发商品扫描录入模型

python开发商品扫描录入模型

时间:2023-09-15 23:34:57浏览次数:37  
标签:code product qr img python text 扫描 商品信息 录入

      最近市场监管部门加大了对销售过期商品的处罚力度。很多菜店、粮店等店不大但商品品种、货号批次却非常多。这里介绍两个可以用手机扫描录入商品数据的模型,供大家二次开发,设计出一个管理商品失效日期的小程序。

      模型一

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", "扫描二维码查看商品信息")

      


标签:code,product,qr,img,python,text,扫描,商品信息,录入
From: https://blog.51cto.com/u_14629072/7488759

相关文章

  • python实现座位打印
    功能需求用户输入行和列,程序自动打印出相应的座位布局功能分析1:定义一个函数,用于实现功能代码段2:使用input()语句获取用户输入的行列数据3:使用range()模块根据用户输入的行列创建一个二维列表4:使用for嵌套循环填充座位的行列,可以使用不同的字符来区分座位5:打印座位布局程序实现#行r......
  • 录入键盘输入的数据
    packageshashasha;importjava.util.Scanner;publicclasssi{publicstaticvoidmain(String[]args){//抄写代码:得到一个键盘扫描器对象(东西)Scannersc=newScanner(System.in);//开始:调用sc功能,来接受用户键盘输入的数据System.out.p......
  • Python 安装与快速入门
    Python安装许多PC和Mac已经预装了Python。要检查在WindowsPC上是否安装了Python,请在开始菜单中搜索Python,或在命令行(cmd.exe)上运行以下命令:C:\Users\YourName>python--version要检查在Linux或Mac上是否安装了Python,请在Linux上打开命令行或在Mac上打开终端,并键入:python......
  • python02
    编码(密码本)计算机所有的数据本质上都是以0和1的组合来储存的。在计算机内会将中文内存转换成0101010101.......最终储存到硬盘上。在计算机有这么一个编码的概念(密码本)武01010111100001110101101010在计算机中有很多种编码每种编码都有自己的一套密码本,都维护自己的一......
  • Python基础 - 索引器,切片语法
    索引器语法:obj[key]a)一般key为int和str比较常见,但是Python下的索引器的key也可以是float,tuple,list,dict等任意对象。b)索引器会由解释器帮我们转换成对__getitem__函数的调用。 classMyTest():def__getitem__(self,key):print(type(key))......
  • Python基础 - 三目运算
    Python中没有下面这样的三目运算符:desc=a==0?"zero":"not_zero" 但是可以用其他的方式来实现:1,ifelse表达式语法:为真时的值if 条件else 为假时的值a=10b="zero"ifa==0else"not_zero"print(type(b),b)#<class'str'>not......
  • Python集成开发环境IDE-Pycharm 2023 win+mac版
    PyCharm2023是一种流行的集成开发环境(IDE),专门为Python开发人员设计.→→↓↓载Pycharm2023mac/winPyCharm2023版提供了强大的代码编辑器,支持智能代码完成、代码分析、代码重构等功能。它还可以自动检测错误并提供修复建议。PyCharm的调试器非常强大,可以帮助开发人员诊断和......
  • Python模块的介绍
    Python模块的介绍什么是模块为什么要用模块模块的分类和形式模块的导入方式导入语句的其他方式判断文件类型什么是模块Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块让你能够有逻辑地组织你的Python代码段。把相关......
  • python文件操作
    python:文件处理一、文件的基本概念1、什么是文件内存中存放的数据在计算机关机后就会消失(临时存储)。要长久保存数据,就要使用硬盘、光盘、U盘等设备。为了便于数据的管理与检索。引入了“文件”的概念。一篇文章,一段视频,一个可执行程序,都可以被保存为一个文件,并赋予一个文件名......
  • 【从零学习python 】07.Python运算符详解:赋值、比较和逻辑运算符
    赋值运算符基本赋值运算符运算符描述实例=赋值运算符把=号右边的结果赋给左边的变量,如num=1+2*3,结果num的值为7单个变量赋值:num=10num同时为多个变量赋值(使用等号连接):a=b=4ab多个变量赋值(使用逗号分隔):num1,f1,str1=100,3.14......