【发布时间】:2014-10-05 16:39:44
【问题描述】:
我正在尝试在带有 Ajax 的网页上的 div 中放置一个简单的 python 脚本(这里我使用了一个可以正常工作的随机二字生成器),并在下方有一个按钮来重新加载它。页面成功加载了脚本...然而,我还没有完全理解丢失的部分来再次调用脚本以重新加载由python脚本(我理解为什么下面的代码是错误的,但我不知道如何使它正确!)。非常感谢指针!
(注:是的,我正在使用 Python 2.4,因为我的虚拟主机尚未升级 - 他们很快就会升级!是的,我看到了 this 问题,但它对我不起作用......)
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Find a sentence</title>
<script src="http://code.jquery.com/jquery-2.0.3.js"></script>
<script>
$(function()
{
$.ajax({
url: "cgi-bin/test.py",
type: "GET",
data: {foo: 'bar', bar: 'foo'},
success: function(response){
$("#div").html(response);
}
});
});
</script>
</head>
<body>
<div id="div"></div>
<form name="input" action="cgi-bin/test.py" method="get">
<input type="submit" value="Regenerate!">
</form>
</body>
Python:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# enable debugging
import cgitb
cgitb.enable()
import linecache
from random import randrange
print "Content-Type: text/html"
print
# file length counter
def file_len(fname):
f = open(fname)
try:
for i, l in enumerate(f):
pass
finally:
f.close()
return i + 1
# range sizes
one_size = file_len('text/one.csv')
two_size = file_len('text/two.csv')
# random lines
one_line = randrange(one_size) + 1
two_line = randrange(two_size) + 1
# outputs
one_out = linecache.getline('text/one.csv', one_line)
two_out = linecache.getline('text/two.csv', two_line)
# output
sentence = one_out.strip('\n') + " " + two_out.strip('\n') + " "
print sentence
【问题讨论】: