2017-06-12 128 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