2010-06-11 33 views
3

我必须从服务器端读取文件。获取它的内容存储在一个列表中,并将其发送到模板 现在,我的问题是如何访问此列表,以便逐行显示文件的内容。 我使用AJAX和jQuery获得基于您可以使用jQuery.ajax()功能的HTTP方法在客户端从服务器读取输入文件并在客户端显示输出

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

数据。

我不确定list数据是如何格式化的,一个简单的方法就是一旦通过ajax调用返回json对象本身就记录下来。

显示JSON对象结构的方法很多,最简单的方法就是使用FireBug等工具,并使用相应的功能console.log();函数。

否则,你可以简单地循环对象,取其级你有兴趣

也有许多浏览器都支持({some:'obj'}).toSource();

1

我会做这样的:

var target = $('p.target'); 
    $.getJSON("filedata.json", function(json){ 
    $.each(json.list, function (i, line) { 
     $('<span></span>') 
     .html(line) 
     .appendTo(target); 
    }); 
1

前提是你的“在服务器上的文件”是HTML(说NEWS.html),并要使用jQuery ...

做出

<div id="NailMeHere"><!-- filled by Ajax call --></div> 
在您的文档

,并执行下列在页面加载

$(document).ready(function(){ 
    $('#NailMeHere').load("NEWS.html"); 
}); 

您NEWS.html可能包含您的网站的CSS,链接,一切....

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

相关问题