Как подобрать одну переменную (среди нескольких) во FLASK, используя AJAX - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь подобрать переменную в Flask из Ajax.Идея состоит в том, чтобы выбрать значение из раскрывающегося списка в HTML, а затем передать его идентификатор в Flask с помощью Ajax.Идентификатором опции на самом деле является имя переменной, которую я хочу импортировать из Flask.

Например:

1-> Я выбираю первый вариант в раскрывающемся списке,который имеет идентификатор 'column_a' ;

2-> В Ajax, идентификатор извлекается из выбранной опции, я передаю Flask, используя переменную 'tags_x' ;

3-> В Flask я использую то же имя переменной 'label_x' для получения данных из Ajax;

4-> И здесь возникает проблема:Я должен был выбрать глобальную переменную во Flask ( 'column_a' ), в соответствии с данными, полученными через request.args.get (), который также 'column_a' .Но я просто не могу.Все, что я получаю, это строка 'column_a'.Не те значения списка, которые хранятся в глобальной переменной, которую я хочу.

Что я здесь не так делаю?


Мой раскрывающийся список:

<select name="select_label_1" id="select_label_1" class="custom-select select_label">
    <option value="{{ column_a }}" id='{{ column_a }}'>{{ label_a }}</option>
    <option value="{{ column_b }}" id='{{ column_b }}'>{{ label_b }}</option>
    <option value="{{ column_c }}" id='{{ column_c }}'>{{ label_c }}</option>
</select>


Ajax:

labels_x_selected = $("#select_label_1").children(":selected").attr("id") || 0;



// AJAX FOR LABELS
// ################
$.ajax({
  url: "/home/data_analysis_labels",
  type: "GET",
  data: {labels_x: labels_x_selected},
  success: function(data) {
    $("#labels___").html(data);
  },
  error: function(xhr) {
    alert('error - must try again and handle it');
  }
});


Колба:

@blueprint.route('/data_analysis_labels', methods=['GET', 'POST'])
@login_required
def data_analysis_labels():

    global column_a
    global column_b
    global column_c

    labels_x = request.args.get('labels_x', default='nothing received', type=str)

    return jsonify(labels_x)

1 Ответ

0 голосов
/ 02 марта 2019

Отвечая на мой собственный вопрос:

Одна из возможностей - создать несколько условий If, как показано ниже.Это не звучит очень читабельно и легко сделать, так как у меня уже есть сто переменных.

if labels_x == 'column_a':
    labels_x = column_a
else: labels_x = 'nothing received 2'

Затем я получаю значения глобальной переменной вместо простой строки.

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