2017-06-12 48 views
0

我建立使用flask一个简单的网站,巫婆包含一个HTML页面index.html,以及部分:searchaboutcontact。直到用户输入这些部分才会显示瓶 - 发送POST请求的特定部分在同一页面

我想发送一个POST requestindex.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作为参数:

@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

浏览器显示:*的方法是不允许的请求的URL * – Asma

回答

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) 
+0

当我写:_action =“/” _浏览器显示:_The浏览器(或代理)发送请求此服务器无法理解._ &当我将其更改为_action =“#search”_时,它显示:_该方法不允许用于请求的URL。_ – Asma

+0

尝试将操作留空。所以:'action =“'' –

+0

它确实带我到_http://127.0.0.1:5000 /#search_,但浏览器显示:**错误的请求**:_浏览器(或代理)发送了一个请求服务器无法理解._ – Asma