Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从外部JS文件调用Python函数?_Javascript_Python_Html_Flask - Fatal编程技术网

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

Javascript 如何从外部JS文件调用Python函数?,javascript,python,html,flask,Javascript,Python,Html,Flask,我在网页上传时使用了一些Javascript的东西,为了测试它,我用HTML内联编写了它(我知道)。我将Flask与Jinja2模板一起使用,以便将我的上传程序(它的行为就像一个表单)连接到Python中的上传函数,我刚刚 url: "{{url_for('upload_file')}}", 在内联Javascript中,因为这可以在模板的范围内引用。现在,我将我的JS移动到一个外部文件,并将其包含在HTML中,如下所示: <script type="text/javascript" s

我在网页上传时使用了一些Javascript的东西,为了测试它,我用HTML内联编写了它(我知道)。我将Flask与Jinja2模板一起使用,以便将我的上传程序(它的行为就像一个表单)连接到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>

var link=“{url\u for('upload\u file')}”

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

编辑

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

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

模板变量={
url:“{{url\'u for('upload\'u file')}}}”,
//等
}

现在,您的另一个脚本可以访问
template\u vars.url
等。

这是什么语法?对不起,我是这方面的初学者。谢谢,谢谢。我做的有点不同,你可以在我的编辑中看到。与我的方法相比,这种方法有什么优势吗?只有当您有很多变量要从模板传递时,它才可以通过将它们放在单个名称中,防止全局名称空间被大量额外名称污染。