我必须从服务器端读取文件。获取其内容将其存储在列表中并将其发送到模板 现在,我的问题是如何访问此列表,以便逐行显示文件的内容。 我使用ajax和jquery来获取客户端的数据
def showfiledata(request):
f = open("/home/tazim/webexample/test.txt")
list = f.readlines()
return_dict = {'list':list}
json = simplejson.dumps(list)
return HttpResponse(json,mimetype="application/json")
答案 0 :(得分:1)
我会这样做:
var target = $('p.target');
$.getJSON("filedata.json", function(json){
$.each(json.list, function (i, line) {
$('<span></span>')
.html(line)
.appendTo(target);
});
答案 1 :(得分:1)
如果你的“服务器上的文件”是HTML(比如说NEWS.html),你想使用jQuery ...
制作
<div id="NailMeHere"><!-- filled by Ajax call --></div>
在您的文档中并在页面加载上执行以下代码
$(document).ready(function(){
$('#NailMeHere').load("NEWS.html");
});
您的NEWS.html可能包含您网站的CSS,链接,所有内容......
答案 2 :(得分:0)
基于HTTP方法,您可以使用jQuery.ajax()函数。
我不确定list
数据是如何格式化的,一个简单的方法就是在ajax调用返回后用JavaScript本身记录json对象。
显示JSON对象结构的方法很多,最简单的方法是使用FireBug等工具,并使用相应的console.log();
函数。
否则,您可以简单地将对象循环到您感兴趣的任何级别。
许多浏览器也支持({some:'obj'}).toSource();
答案 3 :(得分:0)
class FileByLine(object):
def __init__(self, file_object):
self.f = file_object
def next(self):
# do some line format like <li>line</li>
data = self.f.readline()
if data:
return data
else:
raise StopIteration
def __iter__(self):
return self
行动中:
return HttpResponse(FileByLine(open('/path/file')))
在JS中:
$('#lines_from_file').load("<action url>")
您也可以尝试使用http流媒体方法http://ajaxpatterns.org/HTTP_Streaming