2015-11-07 51 views
0

我正嘗試在Flask/Python中創建一個應用程序。在Flask中設置一個URL

我有一個index.html它有一種形式。如果您填寫此表格並按下回車鍵,根據您填寫的查詢返回results.html其中包含的信息。

我的問題是,URL仍然是http://127.0.0.1:5000/index.html,但我想有一個http://127.0.0.1:5000/results.html

如何我可以這樣做嗎?

# -*- coding: utf-8 -*- 
from flask import request,render_template,Flask,redirect 
from databases import db_manager 

app = Flask(__name__) 
app.config.from_object(__name__) 

def is_instance(a): 
    return isinstance(a,basestring) 

app.jinja_env.globals.update(is_instance=is_instance) 


@app.route('/index.html', methods=['GET', 'POST']) 
def index(): 
    if request.method == 'POST': 
     query = request.form['query'] 
     if query.isdigit(): 
      _data = db_manager.manager().get_subject_by_ICO(query) 
     else: 
      _data = db_manager.manager().get_subject_by_name(query) 
    else: 
     return render_template('index.html') 
    return render_template('results.html', data = _data) 

@app.route('/') 
def to_index(): 
    return redirect('/index.html') 

if __name__ == '__main__': 
    app.run(debug=True) 

回答

0

首先,使這個URL(results.html)提供您需要添加合適的途徑

@app.route('/results.html') 

接下來的事情是,這樣你的代碼工作現在 - 它不」在index.html上發佈帖子請求後,將用戶重定向到其他網址。您只需在同一個網址(index.html)呈現results.html模板。爲了實現您的目標,您需要將用戶重定向到results.html,並使用某些與客戶端相關的存儲(例如存儲)來保存要在其中顯示的數據。

+0

謝謝。可以用參數重定向到results.html? (_data) –

+0

否則,您可以使用GET參數進行重定向,並從請求中檢索它們,或者在用戶的Cookie中設置數據,然後在/results.html中查看它們 – Nick