Javascript 更新程序和python对请求的响应
我有一个python代码,它使用模板生成HTML页面。当单击事件发生时,我需要读取Excel文件并显示一些结果,可能是在弹出窗口中。我想我可以使用Javascript 更新程序和python对请求的响应,javascript,ajax,json,python-2.7,prototypejs,Javascript,Ajax,Json,Python 2.7,Prototypejs,我有一个python代码,它使用模板生成HTML页面。当单击事件发生时,我需要读取Excel文件并显示一些结果,可能是在弹出窗口中。我想我可以使用xlrd读取Excel文件。我可以使用ajax请求给出读取excel文件的python文件的url。为此,我决定使用Prototype的Ajax.Updater Updater应该用python文件display.py中的响应替换response项 我有两个问题- 我们如何从python返回响应?这可能是一个微不足道的问题,但我找不到任何地方解释这一部
xlrd
读取Excel文件。我可以使用ajax请求
给出读取excel文件的python文件的url
。为此,我决定使用Prototype
的Ajax.Updater
Updater应该用python文件display.py
中的响应替换response
项
我有两个问题-
返回该响应值?或者使用打印?还是应该使用sys.stdout.write()
?我是这方面的新手,我不明白这是怎么回事。这里有很多问题显示了正在使用json
。我应该用它吗?你能解释一下为什么需要它吗?(我是初学者,如果这听起来很愚蠢,我很抱歉)
myprog.py
from string import Template
import webbrowser
template1 = Template(
"""
<html>
<head>
<script type = "text/javascript" src = "\javascript\prototype.js">
</script>
<script>
function displayResults()
{
new Ajax.Updater("response", "\display.py");
}
</script>
</head>
<body>
<table>
<tr>
<td id = "myid" onclick = displayResults()> $something</td>
</tr>
</table>
<p id = "response">replace this</p>
</body>
</html>
""")
d = template1.substitute(something = nothing)
f= open('filename.html','w')
f.write(d)
f.close()
webbrowser.open_new('filename.html')
我的平台是windows。我正在使用Prototype的新版本(1.7.1)
谢谢
Megh您需要在标题后写入行分隔符:
import sys
sys.stdout.write("Content-type: text/html\n\n")
response = "dadada"
sys.stdout.write(response)
sys.stdout.write("</br>")
如果你还没有和CGI脚本结过婚,那就试试烧瓶、瓶子或金字塔之类的微网络框架吧;这些为您提供了大部分HTTP详细信息。我现在正在使用
print
,但单击时仍然没有任何事情发生。根据文件,我没有将display.py
存储在“\www\cgi-bin”中。那有什么影响吗?我应该制作一些配置文件以使其工作吗?你能在浏览器中访问/display.py
URL吗?发生了什么?是的,我能到达。浏览器显示.py文件的内容。现在,当我运行程序并单击事件发生时,旧内容将消失,但没有在其位置显示任何“dadada”
。CGI不会执行;确保设置了可执行标志。
import sys
sys.stdout.write("Content-type: text/html\n\n")
response = "dadada"
sys.stdout.write(response)
sys.stdout.write("</br>")
print "Content-type: text/html"
print
response = "dadada"
print response + '</br>'