Как передать массив javascript скрипту python с помощью flask [используя пример flask]

Я пытаюсь получить пример колбы/jquery/ajax работа для моего конкретного случая, но я не хватает каждый раз. Я знаю, что такой вопрос задавался несколько раз, но ответы мне не помогают (Да, я новичок в этом).

в Примере передается строка из javascript в python. Я хотел бы передать массив. Интернет предполагает, что это возможно. Вот что у меня есть:

HTML / колба Шаблон:

{% extends "layout.html" %}
{% block title %}Test{% endblock %}
{% block content %}
    <div>
      <h1>Flask Jquery Test</h1>
      <div>
        <input type="button" value="Transfer" id="button" />
      </div>
      <div>
        Wordlist<br />
        <select multiple="multiple" id="wordlist" size="5">
            <option>Volvo</option>
            <option>Audi</option>
            <option>BMW</option>
            <option>Mercedes</option>
            <option>Toyota</option>
        </select>
        <span id="result"></span>
      </div>
    </div>
{% endblock %}

JS Script:

$(document).ready(function() {
    $("#button").bind('click', function(){
        //Get all words from list
        var list = [];
        $("#wordlist option").each(function(){
            list.push($(this).val());
        });
        //var list = $( "#wordlist option" ).val();
        console.log(list);
        $.getJSON($SCRIPT_ROOT + '/_array2python', {
            wordlist: list.toString()
        }, function(data){
            console.log(data.result)
            $( "#result" ).text(data.result);
        });
        return false;
    });
});

Python:

@app.route('/')
def start_page():
    return render_template('index.html')

@app.route('/_array2python')
def array2python():
    wordlist = request.args.get('wordlist', [])
    return jsonify(result=wordlist)

@app.errorhandler(404)
def page_not_found(e):
    """Return a custom 404 error."""
    return 'Sorry, nothing at this URL.', 404

теперь, при переходе в list переменная строка (например,var list = $( "#wordlist option" ).val(); ), этот код работает просто отлично. Однако, при попытке его с массивом, он только передает значение резервной копии (т. е. []).

означает ли это, что я могу передавать строки только python? Как лучше всего передать массив javascript в Python?

спасибо всем за вашу помощь!

P. S. Может это важно упомянуть. Я использую Google app engine для размещения этого кода.

=================================================================================

FYI, это так сайты, которые я пытался следовать, и они не помогли мне:

передача массива Javascript в Flask (превосходный и очень подробный ответ, но не может получить его работа)

передача данных из javascript в Flask

возврат данных из html / js в python

1 ответов


вот еще один способ передать массив JS в python:

сторона JS:

$.getJSON($SCRIPT_ROOT + '/_array2python', {
        wordlist: JSON.stringify(list)
    }, function(data){
        console.log(data.result)
        $( "#result" ).text(data.result);
    });

Сторона Python:

import json

@app.route('/_array2python')
def array2python():
    wordlist = json.loads(request.args.get('wordlist'))
    # do some stuff
    return jsonify(result=wordlist)

насколько я знаю, строки-это единственный способ передать массив от клиента к серверу.