2017-03-31 19 views
0

我想查詢的數據,使用selectfield作爲條件,然後顯示結果在HTML和使用paginage顯示。 我的問題是,當我顯示我的數據,第一個可以正常顯示,但是當我點擊next_page,該selectfield是沒有和數據無法顯示。 當我點擊next_page時,我應該怎麼做才能保持selectfield?在燒瓶,如何查詢數據使用selectfield作爲條件和分頁

+0

請[編輯]包括一個[MCVE。 ? – davidism

+0

如何店在接下來的頁面的URL selectfield時,呈現模板 – stamaimer

+0

@ stamaimer,我存儲在接下來的頁面的URL selectfield.data,它work.Thank你 –

回答

0

您的視圖應接受一個整數以允許傳遞當前數據。下面是一個例子:

@app.route('/view/<int:page>',methods=['GET']) 
def view(page=1): 
    if request.method == 'POST': 
    select = int(request.form.get('select')) 
    print(select) 
    per_page = 2 
    try: 
    users = User.query.order_by(User.email.asc()).paginate(select, 
                  per_page=per_page, 
                  error_out=False) 
    except NameError: 
    users = User.query.order_by(User.email.asc()).paginate(page, 
                  per_page=per_page, 
                  error_out=False) 
    return render_template('view.html',users=users) 

的看法會是這個樣子:

<html> 
    <head>Welcome</head> 
    <body> 
<form method="POST" action="{{ url_for('view', page=users.prev_num + 1) }}"> 
    <div> 
    <div> 
     <span>Please select</span> 
     <select name="select"> 
      {% for user in users.items %} 
      <option value="{{ user.id }}">{{ user.username }}</option> 
      {% endfor %} 
     </select> 
    </div> 
    <button type="submit">Go</button> 
    </div> 
</form> 
{% if users.has_prev %}<a href="{{ url_for('view', page=users.prev_num) }}">&lt;&lt; Newer users</a>{% else %}&lt;&lt; Newer posts{% endif %} | 
{% if users.has_next %}<a href="{{ url_for('view', page=users.next_num) }}">Older users &gt;&gt;</a>{% else %}Older posts &gt;&gt;{% endif %} 

    </body> 
</html> 
+0

:謝謝。我可以使用paginage像你分享,我望來查詢數據 –

+0

不客氣。我希望這對你有用。 – bernie

+0

我的問題是,當我用paginage和查詢我的數據與selectfield作爲acondition,第一頁可以正常顯示,但是當我點擊next_page,該selectfield是沒有和數據無法顯示。我應該怎麼做,以保持selectfield當我點擊next_page –