【发布时间】:2018-07-23 12:31:14
【问题描述】:
我是 Flask 的新手,我正在尝试构建一个简单的网络应用程序。基本上我在主页上有一个文本输入框和一个提交按钮。单击提交后,它会根据输入的文本显示一些结果(现在它已在下面的代码中硬编码)。
我想要的是当你点击提交时,它不仅应该显示结果,而且应该有一个按钮来将输入的文本添加到特定的文件中。但是,我正在努力让它工作(“添加到数据集”按钮没有做任何事情)。
这是我现在所拥有的:
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
if request.method == 'GET':
return render_template('index.html')
# if submit button is clicked
if request.form['submit'] == 'Submit':
# get the text from the form that was filled in
input_text = request.form['text']
final_result = 'stackoverflow rocks'
return render_template('index.html', result=final_result, text=input_text)
if request.form['add-dataset'] == 'Add to dataset':
f = open('dataset/dataset.tsv', 'a')
f.write(input_text)
index.html:
<!doctype html>
<head>
<link rel="stylesheet" media="screen" href ="static/bootstrap.min.css">
<link rel="stylesheet" href="static/bootstrap-theme.min.css">
<meta name="viewport" content = "width=device-width, initial-scale=1.0">
</head>
<br/>
<div class="container">
<form action="/" method="post" role="form">
<div class="form-group">
<label for="text">Text:</label>
<input type="text" class="form-control" name="text" placeholder="Input sentence here">
<br />
</div>
<input type="submit" name="submit" value="Submit" class="btn btn-success">
</form>
<br/>
{% if result is not none %}
<div class="alert alert-success">
{{ result }}
</div>
<h2>Add to dataset</h2>
<br/><input type="submit" name="add-dataset" value="Add to dataset" class="btn btn-success">
{% endif %}
</div>
</html>
【问题讨论】:
-
但是,我很难让它发挥作用。 这到底是什么意思?更具体地解决您的实际问题。
-
我上面使用的代码不起作用,它出于某种原因抱怨缩进。我知道这样是不正确的,因为它实际上是另一个表单中的一个表单(在这种情况下只是一个按钮),但我不知道该怎么做......正如我所说,我对 Flask 完全陌生。
-
我明白,但如果我们实际上不知道您的问题是什么,我们将很难为您提供帮助。
-
抱歉,缩进不是问题。问题只是单击新按钮“添加到数据集”没有任何作用。我编辑了我的问题:)