我需要从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);
});
答案 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))