从服务器读取输入文件并在客户端显示输出

时间:2010-06-11 09:56:13

标签: jquery ajax django

我必须从服务器端读取文件。获取其内容将其存储在列表中并将其发送到模板 现在,我的问题是如何访问此列表,以便逐行显示文件的内容。 我使用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")  

4 个答案:

答案 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