【发布时间】:2019-07-14 21:25:17
【问题描述】:
我有一个 Python 代码,我在其中使用 Flask 创建网页。在主页中,我正在填写一个表单,使用一个按钮提交,它会根据输入显示一个表格。
我遇到的问题是 一旦我单击按钮提交表单,它就会在同一个网页上呈现表格。我想使用 JavaScript window.open() 创建一个新窗口或您可能建议的任何其他方法在新窗口中呈现该表并保持主页不变。我试着环顾四周,我似乎无法得到任何工作。我已经阅读了this question 和this question。但这些建议似乎与我正在寻找的不符。
这是我的代码:
Python 代码
from flask import Flask, render_template, request,
app = Flask(__name__)
def get_table(user_input):
...
return dict //returns list of dictionaries, for example...
//dict = [{'name':'Joe','age':'25'},
// {'name':'Mike','age':'20'},
// {'name':'Chris','age':'29'}]
@app.route("/")
def home():
return render_template('home.html')
@app.route("/table", methods = ['POST'])
def table():
user_input = request.form['input']
dict_table = get_table(user_input) //return list of dictionaries
return render_template('table.html', dict_table=dict_table)
if __name__ == '__main__':
app.run(debug=True)
home.html
<!DOCTYPE html>
<html>
<head>
<title>Homepage</title>
</head>
<body>
<form action="/table" method="post">
<select name="input">
<option value="1">Input</option>
</select>
<button type="submit">Click Me!</button>
</form>
</body>
</html>
table.html
<!DOCTYPE html>
<html>
<head>
<title>Table</title>
</head>
<body>
<table id="table">
{% if dict_table %}
<tr>
{% for key in dict_table[0] %}
<th>{{ key }}</th>
{% endfor %}
</tr>
{% endif %}
{% for dict in dict_table %}
<tr>
{% for value in dict.values() %}
<td>{{ value }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
</body>
</html>
有人可以清楚地解释我如何单击主页上的表单提交按钮,留在主页 home.html 上,并使 table.html 中的表格在新窗口中打开 (也许使用 JavaScript 中的 window.open() 或其他东西)?
如果有人能指导我完成如何使用我提供的代码执行此操作的步骤,并具体告诉我在哪里调用函数和类似的东西,我将不胜感激。我是 Flask/HTML/JS 的新手,我只是想学习以供个人使用,我对阅读链接和文档感到沮丧,这些链接和文档显示了如何在新标签中显示像 google.com 这样的 URL,这不是我想要的。谢谢!
【问题讨论】:
标签: javascript python html flask