4

それらを印刷するには、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);
});
4

1 に答える 1

1

JavaScript でリストまたは Python オブジェクトを送信して処理する最良の方法は、JSON を送信することです。json.dumpsPythonコードで使用できます

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))
于 2013-02-10T15:47:26.977 に答える