我正在使用flask
构建一个简单的网站,其中包含一个页面html index.html
和部分:search
,about
,contact
。在用户输入
我想将POST request
从index.html/#search
发送到同一部分:index.html/#search
。
我试着这样发送:
@app.route('/search', methods=['POST'])
def Search():
_text = request.form['text']
return render_template('index.html/#search', result=_text)
但是没有用,我收到了这个错误:
jinja2.exceptions.TemplateNotFound:index.html / #search
我尝试将search
作为参数传递:
@app.route('/search', methods=['POST'])
def Search():
_text = request.form['text']
return render_template('index.html', id="search", result=_text)
但是当我运行它时不起作用,因为当我想转到http://127.0.0.1:5000/search
时,我需要index.html
(显示http://127.0.0.1:5000/#search
页面)。
这是我的 index.html 页面:
<article id="search">
<h2 class="major">search</h2>
<form method="post" action="Search">
<label for="text">Text</label>
<input type="text" name="text" id="text" placeholder="write any thing in your mind :p" required/>
<input name="search" type="submit" value="See Polarity" class="special" />
<input type="reset" value="Reset" />
</form>
<!-- result search -->
{% if result : %}
<p>{{ result }}</p>
{% endif %}
</article>
答案 0 :(得分:1)
#
表示现有页面上的锚点,而不是新页面。
同样,您的语法为:
@app.route('/search', methods=['POST'])
会创建一条到http://127.0.0.1:5000/search
的新路线。如果您希望它呈现index.html
,然后跳转到search
锚点,则应该在完成后将其呈现index.html
,并包含_anchor
属性。它看起来像是:
@app.route('/', methods=['GET','POST'])
def Search():
if request.method == 'GET'
return render_template('index.html')
else:
_text = request.form['text']
return render_template('index.html', _anchor="search", result=_text)