Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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 Flask:让JS与Python对话_Javascript_Python_Flask - Fatal编程技术网

Javascript Flask:让JS与Python对话

Javascript Flask:让JS与Python对话,javascript,python,flask,Javascript,Python,Flask,我正在编写一个小Flask应用程序,到目前为止,我只使用了调用Python函数的路由。到目前为止,我只指定当用户点击某个URL时调用哪个Python函数 现在我想使用文本框的值来构造路由。因此,我会在页面上有一个文本框,如果用户在“Bowdoin”中键入,我想按如下方式构造一个路由: /team/<teamName> /team/ 在这种情况下,团队名称将是Bowdoin 我可以用basicjs获取textBox的值,但我不确定如何将该值传递到我的视图文件并在路由中使用(如上所述

我正在编写一个小Flask应用程序,到目前为止,我只使用了调用Python函数的路由。到目前为止,我只指定当用户点击某个URL时调用哪个Python函数

现在我想使用文本框的值来构造路由。因此,我会在页面上有一个文本框,如果用户在“Bowdoin”中键入,我想按如下方式构造一个路由:

/team/<teamName>
/team/
在这种情况下,团队名称将是Bowdoin

我可以用basicjs获取textBox的值,但我不确定如何将该值传递到我的视图文件并在路由中使用(如上所述)

非常感谢您的帮助

谢谢,
b外行

您有一个文本框,用户将在其中输入团队名称,您希望使用JavaScript从Flask获取该团队名称页面的URL

假设:

<input type="text" id="teamname" placeholder="Team name">
<button id="btn_teamname">Get team name</button>
首先,我们要使用,因为这是在Flask中生成URL的最佳方法。请记住,一旦用户查看页面,Flask就完成了呈现,如果不从Flask(后端)获取该页面,我们就不能使用
url\u进行

对于本例,做下一件最好的事情:因为您知道team name变量只是附加到URL的末尾,所以从Flask中获取基本URL,并使用JavaScript构建最终URL

在HTML的某处,存储Flask中的基本URL:

<span id="teambaseurl" hidden>{{ url_for('teamname') }}</span>

有点不清楚你想要实现什么。这是一个ajax调用吗?重定向?内容从哪里到路线
/team/Bowdoin
?@MauroBaraldi你是什么意思?我想有一个通用的路径,其中第二个斜杠后面的文本,即“/team/RIGHT_HERE”表示团队。每一页都指向该团队的一个差异页面。我只是不知道一旦我从文本框(使用javascript)中获得该值,如何让Python代码访问该值。@GG_Python这样页面/团队就会有一个文本框。当用户输入团队名称并单击某个按钮时,我将使用javascript检索该文本框的内容。但一旦我这样做了,我不知道如何在我的路由文件中使用Python访问它。。。
<span id="teambaseurl" hidden>{{ url_for('teamname') }}</span>
$('#btn_teamname').on('click', function() {
    var baseURL = $('#teambaseurl').text();
    var finalURL = baseURL + "/" + $('#teamname').val();
    // window.location.href = finalURL; // if you want to immediately navigate to that page
});