我是 python 新手,正在尝试通过 python 访问数据库并使用 AJAX 在 JSON 数组中返回一些结果。
我通过返回 JSON 列表并使用 js 发出警报来测试它。当我不使用数据库连接时它可以工作,但是一旦我添加它,js 警报也会停止。当我运行文件 getSchedule.py
时,数据库连接似乎工作正常。数据库连接位于单独的文件 webairdb.py
有人可以帮我找出问题所在吗?
getSchedule.py
#!D:/Programming/Software/python3.4.4/python
import sys, json,cgi, cgitb, mysql.connector, webairdb
cgitb.enable()
fs = cgi.FieldStorage()
sys.stdout.write("Content-Type: application/json")
sys.stdout.write("\n")
sys.stdout.write("\n")
conn = webairdb.getConnection()
conn.close()
listr = [11111]
sys.stdout.write(json.dumps(listr))
sys.stdout.write("\n")
sys.stdout.close()
webairdb.py
#!D:/Programming/Software/python3.4.4/python
import cgi, cgitb, imp, mysql.connector
host ="localhost"
db = "webair"
user = "root"
password = ""
def getConnection():
conn = mysql.connector.connect(user=user,password=password,host=host,database=db)
if conn.is_connected():
print("aaaqqqq")
return conn
最佳答案
在webairdb.py中,您写入sys.stdout
(这就是print
所做的)-有效地破坏json输出。 (您可能想在浏览器中按 F12 查看输出)
因此,只需将其删除并写入 sys.stderr
或使用 logging相反。
您还应该考虑使用wsgi而不是cgi,它使事情变得更容易一些(根本不需要关心打印)或像bottle这样的框架或cherrypy .
关于javascript - 将 JSON 与 AJAX 和 Python 数据库结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38802638/