从服务器获取列表并打印由span标记包围的每个元素

时间:2013-02-10 15:20:19

标签: javascript google-app-engine python-2.7

我需要从python 2.7中的服务器端获取一个列表到javascript中的前端来打印它们。有没有办法做到这一点?我试图通过“self.response.out.write(my_list)”传递列表。

import webapp2
import jinja2
import os
import logging
from google.appengine.ext import db
import random
from google.appengine.api import users
jinja_environment = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.path.dirname(__file__) + '/template'))

class MainPage(webapp2.RequestHandler):
    def get(self):
      # Print webpage
      template_values = {}
      template = jinja_environment.get_template('index.html')
      self.response.out.write(template.render(template_values))

    def post(self):
      my_list = ['one', 'two', 'three', 'four']
      self.response.out.write(my_list)


app = webapp2.WSGIApplication([('/', MainPage),],debug=True)

循环浏览列表并在控制台中打印的Javascript代码。

function refresh(e) {
    console.log('Refresh.');
    addNewWord();
}

function addNewWord() {
    console.log('Add new words');
    $.ajax('/',{
        type: 'POST',
        data: {

        },
        success: handleResponse
    });
}

function handleResponse(data) {
    console.log('Got from server:' + data);
    for (var i = 0; i <data.length; i++) {
        console.log(data[i]);
    }
}

$(document).ready(function() {
    $('#refreshButton').click(refresh);
});

1 个答案:

答案 0 :(得分:1)

使用JavaScript发送和处理列表或Python对象的最佳方法是发送JSON。 您可以在python代码中使用json.dumps

import json
....

my_list = ['one', 'two', 'three', 'four']
self.response.write(json.dumps(my_list)

现在您收到一个JSON字符串。但是使用jQuery它会给你一个JavaScript对象。有关详细信息,请参阅jQuery:http://api.jquery.com/jQuery.getJSON/

如果您不使用JSON,则可以使用字符串发送列表:

my_list = ['one', 'two', 'three', 'four']
self.response.write(','.join(my_list))