Javascript 如何将参数传递给jinja2 flask函数调用?

Javascript 如何将参数传递给jinja2 flask函数调用?,javascript,python,flask,jinja2,Javascript,Python,Flask,Jinja2,我试图将参数传递给上下文处理器函数 @app.context_processor def my_utility_processor(): def foo(var): return var return dict(foo=foo) jinja/html模板部分如下所示: <button type="button" class="btn btn-info" onclick="var name={{ i.DeviceName }}

我试图将参数传递给上下文处理器函数

@app.context_processor
    def my_utility_processor():
        def foo(var):
            return var
    return dict(foo=foo)
jinja/html模板部分如下所示:

    <button type="button" class="btn btn-info" onclick="var name={{ i.DeviceName }};this.disabled=true;alert('{{ foo({{ variable }}) }} ')">
Click</button>

点击

是否有可能通过某种方式将jinja2参数传递给jinja函数调用?

一旦输入
{{…}
块,就会受到Python语法的控制

alert('{{ foo(variable) }} ')"
不过,根据
foo
的输出,这可能会导致JavaScript错误。您可以更进一步,让Jinja为您格式化输出

alert({{ foo(variable)|tojson|safe }})

这将为您处理诸如引用字符串之类的事情

不完全是我打算做的。我必须调用一个函数并向该函数传递一个参数。该参数是jinja参数{{…}。我想唯一的解决方案/解决办法是制作一个带有隐藏post参数和@app.route函数的表单。什么是“Jinja参数”?如果
foo
variable
都来自Python,那么您就是这样做的。但是,如果
变量
是JavaScript,您不能将JavaScript变量直接传递到Python函数中,您需要向服务器发出请求。我正在jinja模板中循环
{%for I in devices%}
,我想制作一个调用Python函数的按钮:
{{foo({I.DeviceName}}}
按钮无法调用Python函数。您最多只能触发一个请求(该请求将映射到Python函数)。