在具有唯一URL的Flask网站上动态加载

时间:2020-09-14 19:59:40

标签: javascript python html ajax flask

我正在建立一个Flask网站,该网站可以动态加载诸如时间之类的信息,但是我遇到了AJAX和jQuery的问题。

按照烧瓶站点https://flask.palletsprojects.com/en/1.1.x/patterns/jquery/上的示例

我想根据用户唯一ID 而不是静态ID将其更改为动态URL。

Python文件:

from flask import Flask, jsonify, render_template, request
app = Flask(__name__)

@app.route('/_add_numbers/<UNIQUEID>')
def add_numbers():
    a = request.args.get('a', 0, type=int)
    b = request.args.get('b', 0, type=int)
    return jsonify(result=a + b)

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

HTML

<script type=text/javascript>
  $(function() {
    $('a#calculate').bind('click', function() {
      $.getJSON($SCRIPT_ROOT + '/_add_numbers/UNIQUEID', {
        a: $('input[name="a"]').val(),
        b: $('input[name="b"]').val()
      }, function(data) {
        $("#result").text(data.result);
      });
      return false;
    });
  });
</script>
<h1>jQuery Example</h1>
<p><input type=text size=5 name=a> +
   <input type=text size=5 name=b> =
   <span id=result>?</span>
<p><a href=# id=calculate>calculate server side</a>

我不知道如何在HTML中添加唯一ID。任何帮助深表感谢!

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点。我建议您简单地使用render_template("index.html", user_id=current_user.id)将用户的ID添加到模板上下文中(确保您从flask导入current_user。如果用户登录,这将返回用户ID,而{{1} },则可以执行以下操作:

None

应该这样做。

或者,您实际上可以在模板中使用$(function() { $("a#calculate").bind("click", function() { $.getJSON($SCRIPT_ROOT + "/_add_numbers/{{ user_id }}", etc etc: your code goes here )} )} 的值(如果您理解的话),因为无论如何它都是通过Jinja隐式传递的。 o用{{current_user.id}}代替current_user.id