如何从外部JS文件调用Python函数?

时间:2014-02-23 20:20:30

标签: javascript python html flask

我在网页上使用了一些Javascript东西作为上传器,测试它我用HTML内联编写它(我知道)。我正在使用带有Jinja2模板的Flask,以便将我的上传器(它就像一个表单)连接到我的Python中的上传功能,我只是

url: "{{url_for('upload_file')}}",
内联Javascript中的

,因为这可以在模板的范围内引用。现在我已将我的JS移动到外部文件中,并将其包含在HTML中,如下所示:

<script type="text/javascript" src="{{ url_for('static', filename='uploader.js') }}">
  </script>

如何从外部js文件调用我的Python函数?有没有办法在模板中初始化它并将其传入,或者我错过了一些非常基本的东西?

编辑:我最终做的有点不同了:

<script>
var link = "{{ url_for('upload_file') }}"
</script>
<script type="text/javascript" src="{{ url_for('static', filename='uploader.js') }}">
</script>

1 个答案:

答案 0 :(得分:0)

正如您所说,您需要在主文件中执行此操作。在脚本标记内,您可以在全局范围内定义对象,并将属性设置为模板调用的结果。然后,您可以引用脚本文件中的对象。

修改

没有特殊的语法:这只是标准的Javascript。

<script type="text/javascript">
    template_vars = {
        url: "{{url_for('upload_file')}}",
        // etc
    }
</script>

现在您的其他脚本可以访问template_vars.url等。