【发布时间】:2012-02-08 16:59:28
【问题描述】:
可以肯定的问题。我试图将一些通用代码移动到一个单独的模块中,并将该代码用作导入函数。该代码通过 MySQLdb 进行 MySQL 查询。当函数是主脚本的一部分时,它运行得很好。当我从单独的模块导入函数时,函数失败,因为不再定义游标对象。有没有一种方法可以在不为导入的函数定义单独的光标对象的情况下导入函数?
这是一个编码示例。这有效:
import MySQLdb
#from mod2 import lookup_value
def get_db_connection(database_name):
db = MySQLdb.connect('localhost', 'user', 'pswrd', database_name)
cur = db.cursor()
return db, cur
def lookup_value(user_name):
query = "SELECT COUNT(*) FROM x_user_%s" % (user_name)
cur.execute("%s" % (query))
return cur.fetchone()
db_name = 'mg_test' # database name
user_name = 'test' # name of a specific table in the database
db, cur = get_db_connection(db_name)
value = lookup_value(user_name)
当我将 lookup_value 的代码移动到第二个文件并导入它('from mod2 import lookup_value')时,代码失败,因为光标对象未定义。 lookup_value 的导入版本仅在我创建一个游标对象供其使用时才有效。这似乎非常低效。处理这个问题的最佳方法是什么?
【问题讨论】:
标签: python mysql-python