У меня есть код Python, где я использую Flask для создания веб-страницы.На домашней странице я заполняю форму, отправляю ее с помощью кнопки, и она отображает таблицу на основе входных данных.
Проблема, с которой я сталкиваюсь, заключается в том, что , как только я нажимаю кнопку, чтобыотправив форму, она отображает таблицу на той же веб-странице. Я хотел бы создать новое окно, используя JavaScript window.open()
или любой другой метод, который вы могли бы предложить, чтобы отобразить эту таблицу в новом окне и оставить домашнюю страницу какэто.Я попытался осмотреться, и я не могу заставить что-то работать.Я прочитал этот вопрос и этот вопрос .Но эти предложения, похоже, не соответствуют тому, что я ищу.
Это мой код:
Код 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 в новом окне (возможно, используя window.open()
из JavaScript или чего-то еще)?
Я был бы признателен, если бы кто-нибудь помог мне разобраться в том, как это сделать с предоставленным моим кодом, и показал бы мне, где конкретно вызывать функции и тому подобное.Я новичок в Flask / HTML / JS, и я просто пытаюсь учиться для личного использования, и я получаю разочарование, читая ссылки и документы, которые показывают, как отображать URL-адрес, такой как google.com, на новой вкладке, что не то, что я хочу. Спасибо!