【发布时间】:2021-02-18 18:19:05
【问题描述】:
我已经在我的 Mac 上设置了一个本地 apache2 网络服务器。我有一个调用 javascript 函数 onclick 的按钮。该 javascript 函数使用 JQuery .ajax 调用当前名为 test.py 的本地 python 文件(如下所示)。在 test.py 中,我试图从我命名为 frontEndSupport.py 的 python 文件中导入另一个本地模块,以使用名为 create_graph 的函数。
问题是:当我点击网页上触发所有这些的按钮时,我最终会收到 500 服务器错误。
这是test.py中的代码:
#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
#from frontEndSupport import create_graph
import datetime
print "Content-type: text\n\n";
# Create instance of FieldStorage
data= cgi.FieldStorage()
# Get data from fields
ticker = data.getvalue("ticker")
day = data.getvalue("day")
print("Ticker: {0}".format(ticker))
print("Day: {0}".format(day))
#ticker = "CSCO"
#day = datetime.datetime(2021, 2, 10, 14, 30, 0).strftime("%Y-%m-%d %H:%M:%S")
#create_graph(ticker, day)
就像现在一样,从 frontEndSupport 的导入注释掉,它工作正常。在 javascript 函数中,我使用 ajax 响应创建了一个警报,它给出了正确的警报(Ticker: ... Day: ...),所以我知道环境设置正确,可以访问和运行这个 python 脚本。
但是,当我取消注释“from frontEndSupport import create_graph”时,即使我不使用 create_graph,我也会在单击按钮时收到 500 内部服务器错误,因此我相信仅导入此模块就是问题所在。我已经从命令行使用带有硬编码变量的 create_graph 运行 test.py,而不是使用 cgi,它按预期工作。
正如我所说,我认为问题在于导入。它可能与服务器不知道文件在哪里有关,但我不知道如何解决这个问题(如果是这样的话)。
希望背景信息是直截了当的,但如果需要,我可以澄清或提供更多信息。
【问题讨论】:
标签: python jquery ajax apache2