【发布时间】:2019-09-29 04:56:15
【问题描述】:
我喜欢用 wtforms 构建的搜索栏,但我不知道由于某种原因我无法获取在搜索栏中输入的数据或值。我尝试了在线教程中的几乎所有内容,但找不到解决方案。下面是我的代码示例。
对于我的搜索栏,我也尝试过 form.search.data 和 request.form['search'],但它不起作用。
#flask_app.py
from flask import Flask, render_template, url_for, flash, redirect, request
from forms import SearchForm
app = Flask(__name__)
app.config['SECRET_KEY'] = '791628bb0b13ce0c676dfde'
@app.route('/')
@app.route('/home')
def home():
return render_template('home.html')
@app.route('/search', methods= ['GET', 'POST'])
def search():
form = SearchForm()
if form.validate_on_submit():
if form.search.data == 'admin':
return redirect(url_for('home'))
return render_template('search.html', form= form)
if __name__ == "__main__":
app.run(debug=True)
#forms.py
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
class SearchForm(FlaskForm):
search = StringField('search', validators=[DataRequired()])
submit = SubmitField('Search')
#search.html
{% extends 'layout.html' %}
{% block content %}
<form action="" class="form-inline mt-4" method="POST">
<div class="form-group">
{{form.search(class= 'form-control', placeholder= 'Enter term to search')}}
{{form.submit(class= 'btn btn-outline-primary')}}
</div>
</form>
{%endblock%}
#home.html
{% extends 'layout.html' %}
{% block content %}
<h1>Welcome to homepage!</h1>
{%endblock%}
有什么错误吗?我希望 form.search.data 应该能够从搜索栏获取数据。
【问题讨论】:
-
action=""... 这不会向search提交任何内容
标签: python flask flask-wtforms