передача данных с помощью Ajax с использованием торнадо Python в Jupyterhub - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь сделать что-то очень простое.На моей странице есть модал, предназначенный для отображения при каждом нажатии кнопки.Кнопки - это ячейка в таблице моей страницы.Кнопка должна запустить модальный режим и отобразить данные внутри этого модального режима на основе остальных данных строки.В частности, одна ячейка: идентификатор.Я использую бэкэнд Python, чтобы получить набор данных из моей БД на основе идентификатора клика.Я старался изо всех сил, чтобы добиться прогресса в этом самостоятельно.

Я использую jquery для обработки клика, и все это выполняется внутри сервера jupyterhub.

Вот метод API для извлечения идентификатора со страницы:

JHAPI.prototype.api_request = function (path, options) {
    options = options || {};
    options = ajax_defaults(options || {});
    var url = utils.url_path_join(
        this.base_url,
        'api',
        utils.encode_uri_components(path)
    );
    $.ajax(url, options);
};

JHAPI.prototype.get_sg = function (sg_id, options) {
    console.log(sg_id);
    options = options || {};
    this.api_request(
        utils.url_path_join('securitygroup', sg_id),
        options
    );
};

Вот jquery на странице, которая его вызывает:

 $(".rules").click(function () {
      var el = $(this);
      var id = $(this).closest("tr").find(".sgid").text();
      var dialog = $("#rules-dialog");
      dialog.find(".rules-sg").text(id);
      console.log(api.get_sg(id, {}));
      dialog.modal();
  })

и, наконец,the python:

  class SecurityGroupAPIHandler(APIHandler):
  async def get(self, sg_id):
      data = ["test"]
      self.write(json.dumps(data))

  default_handlers = [
  (r"/api/user", SelfAPIHandler),
  (r"/api/securitygroup/([^/]+)", SecurityGroupAPIHandler),
  (r"/api/users", UserListAPIHandler), ...]

Как вы можете видеть, я на самом деле еще не выполняю выборку из БД, я просто пытаюсь заставить console.log(get_sg(...) действительно успешно записать что-то .В настоящее время возвращается неопределенное.Тем не менее, console.log внутри функции get_sg вызывается успешно и выдает правильный идентификатор, так что я на 99% уверен, что это происходит на стороне Python.Большое спасибо за вашу помощь!

...