使用JQuery for Flask创建动态URL

时间:2013-11-22 21:08:05

标签: jquery python json flask

目前我有一种过滤器形式。我将使用以下代码返回该表单的序列化版本:

$.fn.serializeObject = function() {
      var o = {};
      var a = this.serializeArray();
      $.each(a, function() {
          if (o[this.name]) {
              if (!o[this.name].push) {
                  o[this.name] = [o[this.name]];
              }
              o[this.name].push(this.value || '');
          } else {
              o[this.name] = this.value || '';
          }
      });
      return o;
  };

所以通常当我使用Flask并且我想创建一个动态URL时,我会在模板中执行以下操作:

<a href="{{ url_for('url_base', selector='{0}'.format(data[]) )}}">{{ data[0] }}, {{ data[1] }}</a>

或类似的东西。但是,现在,我不能在HTML中编写它,因为我正在使用JQuery进行计算。

我的JSON看起来像这样:

{"first_attr": [1, 54, "pie"], "second_attr": ["tree", "foo"]}

我想将它传递给具有类似结构的烧瓶,因为它将进入一些接受**kwargs的python函数。

如何使用JQuery编辑元素的href,让我们说一个<button>,以便它向烧瓶发出AJAX GET请求。它可以通过设置像url_for这样的href,也可以通过文字AJAX请求来完成。无论哪种方式,都需要有类似于url_for(base, selector)的东西来实现它,我认为

1 个答案:

答案 0 :(得分:0)

所以,我最终使用了这个entension。它允许您为烧瓶生成客户端的URL。

你需要做什么:

git clone https://github.com/dantezhu/flask_util_js

找到flask_util_js.py并将其贴在项目中

.html模板的某处,添加{{ fujs.js }}以包含代码

然后,您可以在某处执行此操作:

function onClicked(key) {
    var newURL = flask_util.url_for('your_base', {your_selector: key});
    window.location = newURL;
}

这很容易