Flask:让JS与Python交谈

时间:2015-07-15 20:02:26

标签: javascript python flask

我正在编写一个小型Flask应用程序,到目前为止只使用了调用Python函数的路径。到目前为止,我只是指定当用户访问某个URL时要调用的Python函数。

现在我想使用textBox的值来构造路由。所以我在页面上有一个textBox,如果用户输入" Bowdoin",我想按如下方式构建一个路径:

/team/<teamName>
在这种情况下,

和teamName将是Bowdoin。

我可以使用基本JS获取textBox的值,但我不确定如何将此值传递给我的视图文件并在路由中使用(如上所述)。

任何帮助都非常感激。

谢谢, bclayman

1 个答案:

答案 0 :(得分:1)

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

假设:

<input type="text" id="teamname" placeholder="Team name">
<button id="btn_teamname">Get team name</button>

你在那个按钮上有一些处理程序:

$('#btn_teamname').on('click', function() {
    // do something
});

首先,我们要使用url_for,因为这是在Flask中生成网址的最佳方式。请记住,一旦用户查看页面,Flask就会完成渲染,我们无法使用url_for而无法从Flask(后端)获取。

对于此示例,请执行下一个最佳操作:因为您知道团队名称变量只是附加到URL的末尾,所以从Flask获取基本URL并使用JavaScript构建最终URL。

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

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

然后,当用户单击按钮并完成URL时,您可以使用JavaScript获取它:

$('#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
});