我有兩個腳本main.py和testscript.py。在main.py上是連接到我的數據庫和testscript.py的函數,我將使用它作爲查詢請求,並使用main.py將此查詢調用到我的數據庫中。添加到在main.py使用兩個腳本的python數據庫查詢
if __name__ == '__main__':
q = "select domain_name from domains_domain limit 10"
query(q)
和運行腳本
python main.py
工作如預期,但我不知道如何做到這一點的testscript.py
這裏是main.py
import MySQLdb
from localdb import *
import socket
host = socket.gethostname()
error_report = "Check if MySQL service is running and user name/password are correct"
class WeekQuery:
def __init__(self, name):
self.name = name
def query(self):
cursor = None
results = None
week_number = None
#Connecting to production database
if host == 'db01':
try:
db = MySQLdb.connect("db01", "myuser", "mypass", "mydb")
cursor = db.cursor()
cursor.callproc(self)
results = cursor.fetchall()
week_number = [i[0] for i in cursor.description]
except MySQLdb.Error, e:
try:
print "%s \n MySQL Error [%d]: %s" % (error_report, e.args[0], e.args[1])
except IndexError:
print "%s \n MySQL Error: %s " % (error_report, str(e))
else:
#local database rename localdb.py_example to localdb.py
try:
db = MySQLdb.connect(host=MYSQL_HOST, user=MYSQL_USER, passwd=MYSQL_PASSWD, db=MYSQL_DATABASE)
cursor = db.cursor()
cursor.execute(self)
results = cursor.fetchall()
week_number = [i[0] for i in cursor.description]
except MySQLdb.Error, e:
try:
print "%s \n MySQL Error [%d]: %s" % (error_report, e.args[0], e.args[1])
except IndexError:
print "%s \n MySQL Error: %s " % (error_report, str(e))
#finally:
# cursor.close()
# db.close()
print(results, week_number) #For debuging only
return (results, week_number)
這裏我testscript.py
from main import WeekQuery
def sample():
q = "select domain_name from domains_domain limit 10"
x = WeekQuery(q)
for y in x.query():
print(y)
是什麼問題?如果需要,可以在WeekQuery類中定義默認查詢。 – Ashalynd 2015-01-04 11:16:52
問題是,蟒蛇sampletest.py返回一個錯誤: '回溯(最近通話最後一個): 文件 「script.py」,第11行, 樣品() 文件 「script.py」 中,第7行,在樣本 for y in x.query(): 文件「/home/robert/projects/python/scripts/example_tests/db_query_function/main.py」,第36行,在查詢中 cursor.execute(self)' –
Robert
2015-01-04 11:40:55
是所有錯誤文本? – Ashalynd 2015-01-04 12:04:11