Python 使用用户输入在Mysql数据库中查找信息

Python 使用用户输入在Mysql数据库中查找信息,python,sql,user-input,Python,Sql,User Input,我需要设计一个程序使用python,将要求用户的条形码。然后,使用此条形码,它将搜索mysql以查找其相应的产品 我有点被困在如何开始的问题上。有人给我一些提示吗?条形码只是一系列字符(字母数字)的图形表示 因此,如果您有用户输入此代码的方法(条形码扫描器),那么这只是查询mysql数据库中的字符串的问题。条形码只是一系列字符(字母数字)的图形表示 因此,如果您有一种用户输入此代码的方法(条形码扫描器),那么这只是查询mysql数据库中的字符串的问题。这是一个非常模糊的问题。你想做的事情可以通过

我需要设计一个程序使用python,将要求用户的条形码。然后,使用此条形码,它将搜索mysql以查找其相应的产品


我有点被困在如何开始的问题上。有人给我一些提示吗?

条形码只是一系列字符(字母数字)的图形表示


因此,如果您有用户输入此代码的方法(条形码扫描器),那么这只是查询mysql数据库中的字符串的问题。

条形码只是一系列字符(字母数字)的图形表示


因此,如果您有一种用户输入此代码的方法(条形码扫描器),那么这只是查询mysql数据库中的字符串的问题。

这是一个非常模糊的问题。你想做的事情可以通过多种方式来完成,这取决于你真正想做的事情

您的用户将如何输入条形码?他们要用条形码扫描器吗?他们是否手动输入条形码号码

这是在台式机/笔记本电脑上运行还是在手持设备上运行


条形码扫描器是存储条形码以便以后检索,还是直接将其发送到计算机。它是通过USB电缆还是无线发送?这是一个非常模糊的问题。你想做的事情可以通过多种方式来完成,这取决于你真正想做的事情

您的用户将如何输入条形码?他们要用条形码扫描器吗?他们是否手动输入条形码号码

这是在台式机/笔记本电脑上运行还是在手持设备上运行


条形码扫描器是存储条形码以便以后检索,还是直接将其发送到计算机。它会通过USB电缆或无线方式发送它们吗?

首先,将条形码输入视为纯旧文本

我使用条形码扫描器已经有一段时间了,但我怀疑它们是否有那么大的变化,旧的扫描器过去只是依靠键盘输入,所以从编程的角度来看,最终的结果是键盘缓冲区中的字符流,无论是键入的还是扫描的,都没有什么区别

如果目标设备与此不同,则在进入数据库查询之前,需要编写一些内容来处理此问题


如果您有一台设备可以使用,请将其插入,启动记事本,开始扫描一些条形码,然后看看会发生什么。

首先,将条形码输入视为纯旧文本

我使用条形码扫描器已经有一段时间了,但我怀疑它们是否有那么大的变化,旧的扫描器过去只是依靠键盘输入,所以从编程的角度来看,最终的结果是键盘缓冲区中的字符流,无论是键入的还是扫描的,都没有什么区别

如果目标设备与此不同,则在进入数据库查询之前,需要编写一些内容来处理此问题

如果你有一台设备可以玩,插上它,启动记事本,开始扫描一些条形码,看看会发生什么。

使用。它是一个允许您与数据库对话的模块

import MySQLdb

user_input = raw_input("Please enter barcode and press Enter button: ")

db = MySQLdb.connect(passwd="moonpie",db="thangs")
mycursor = db.cursor()
mycursor.execute("""SELECT name, price FROM Product
                 WHERE barcode = %s""", (user_input,))

# calls fetchone until None is returned (no more rows)
for row in iter(mycursor.fetchone, None):
    print row

如果你想要更高级的东西,请考虑使用一个层。它可以让你做到:

product = session.query(Product).filter(Product.barcode == user_input).scalar()
print product.name, product.price
使用。它是一个允许您与数据库对话的模块

import MySQLdb

user_input = raw_input("Please enter barcode and press Enter button: ")

db = MySQLdb.connect(passwd="moonpie",db="thangs")
mycursor = db.cursor()
mycursor.execute("""SELECT name, price FROM Product
                 WHERE barcode = %s""", (user_input,))

# calls fetchone until None is returned (no more rows)
for row in iter(mycursor.fetchone, None):
    print row

如果你想要更高级的东西,请考虑使用一个层。它可以让你做到:

product = session.query(Product).filter(Product.barcode == user_input).scalar()
print product.name, product.price

你能解释一下第一个代码示例中的语句吗?谢谢。@nosklo:我现在拿到了。我认为fetchone会返回第一条记录,或者不返回,就这样。不管怎样,我已经看过了DB API,我很好奇:MySQLdb不支持游标上的迭代吗,例如“对于mycursor中的行”?@Cristian:我不使用MySQLdb,也没有安装它。MySQLdb文档什么也没说。也许你应该试试看。iter(cursor.fetchone,None)可以在任何与DBAPI2.0兼容的驱动程序上工作,所以我还是喜欢使用它。@nosklo:我明白了。谢谢你的习语。你能解释一下第一个代码示例中的for语句吗?谢谢。@nosklo:我现在拿到了。我认为fetchone会返回第一条记录,或者不返回,就这样。不管怎样,我已经看过了DB API,我很好奇:MySQLdb不支持游标上的迭代吗,例如“对于mycursor中的行”?@Cristian:我不使用MySQLdb,也没有安装它。MySQLdb文档什么也没说。也许你应该试试看。iter(cursor.fetchone,None)可以在任何与DBAPI2.0兼容的驱动程序上工作,所以我还是喜欢使用它。@nosklo:我明白了。谢谢你的成语。