在Flask中设置URL

时间:2015-11-07 14:56:05

标签: python flask

我正在尝试在Flask / Python中创建应用。

我有index.html,其中有一个表单。如果您填写此表单并按Enter键,则会返回results.html,其中包含根据您填写的查询的信息。

我的问题是该网址仍为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)

1 个答案:

答案 0 :(得分:0)

首先,要使此url(results.html)可用,您需要添加适当的路径

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

接下来是您的代码现在的工作方式 - 在index.html上发布请求后,它不会将用户重定向到另一个网址。您只需在同一个url(index.html)中呈现results.html模板。为了实现您的目标,您需要将用户重定向到results.html,并使用一些客户端相关存储(例如,存储)保存您想要显示的数据。