чтение входного файла с сервера и отображение вывода на стороне клиента - PullRequest
3 голосов
/ 11 июня 2010

Я должен прочитать файл со стороны сервера. Получив его содержимое сохранил его в списке и отправил в шаблон Теперь мой вопрос - как получить доступ к этому списку, чтобы построчно отображать содержимое файлов. Я использую 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 ]

1 голос
/ 11 июня 2010

Я бы сделал это так:

  var target = $('p.target');
  $.getJSON("filedata.json", function(json){
     $.each(json.list, function (i, line) {
       $('<span></span>')
         .html(line)
         .appendTo(target);
  });
1 голос
/ 11 июня 2010

При условии, что ваш "файл на сервере" - это HTML (скажем, NEWS.html), и вы хотите использовать jQuery ...

сделать

<div id="NailMeHere"><!-- filled by Ajax call --></div>

в вашем документе и выполните следующий код при загрузке страницы

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

ваш NEWS.html может содержать CSS вашего сайта, ссылки, что угодно ....

0 голосов
/ 11 июня 2010
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

0 голосов
/ 11 июня 2010

На основе метода HTTP вы можете использовать функцию jQuery.ajax () .

Я не уверен, как эти list данные форматируются, простой способ - зарегистрировать объект json с помощью самого JavaScript, как только он будет возвращен вызовом ajax.

Существует много способов отображения структуры объектов JSON, проще всего было бы использовать такой инструмент, как FireBug, и использовать соответствующую функцию console.log();.

В противном случае вы можете просто зациклить объект на любом интересующем вас уровне.

Также многие браузеры поддерживают ({some:'obj'}).toSource();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...