2016-09-23 42 views
0

所以, 我很新的燒瓶中,前端編程..燒瓶中傳播的價值,從一個路徑到另一個

我有一個表格:這樣

<form action="{{ url_for('search') }}" method="post"> 
    Showing values for: <input type="text" name="name" value={{ name }} disabled><br><br> 
    <select name="movie" width="300px"> 
     {% for movie in movie_list %} 
     <option value="{{ movie }}" SELECTED>{{ movie }}</option> 
     {% endfor %} 
    </select> 
    <input type="submit" value="Recommend!!"> 
</form> 

這是怎麼我在燒瓶捕捉

@app.route('/web/search', methods=['post','get']) 
def search(): 
    print request.method, request.form 

所以,你可以看到,在HTML形式..我有兩個字段..

名(文本框),它已經有一個默認值設置

和option_list

而且,我的意思是,當用戶按下「提交」,這兩個領域在後端

收到 但打印語句顯示..

POST ImmutableMultiDict([('movie', u'foobar')]) 

但我沒有看到名稱字段?

我該如何解決這個問題?

+0

我不認爲瀏覽器在請求中包含禁用的字段。 – dirn

+0

@dirn:\t所以,我想在用戶提交表單時傳遞這個名稱..最好的方法來捕獲這個? – Fraz

+0

如果需要可見,可以使用'readonly'。否則,就把它隱藏起來。 – dirn

回答

1

您同時允許GETPOST的請求,但你不把它們之間的代碼區別。如果您想在用戶提交這些值時獲取這些值,那麼您需要在POST之後執行某些操作。也許是這樣的:

@app.route('/web/search/', methods=['POST','GET']) 
def search(): 
    if request.method == 'POST': 
     print request.method, request.form 
     # do some stuff 
     return redirect(url_for('search_results', results=results)) 
    else: 
     return render_template('my_template.html') 

然後,在if語句,可以做的事情的變量。在我想象的情況下,我將用戶發送到另一個網頁,您可以在其中顯示搜索結果。我剛剛爲render_template()創建了一個模板名稱,因此您可以替換實際調用的任何模板。

相關問題