两个烧瓶蓝图的url_prefix相同

时间:2017-10-22 05:48:47

标签: python flask routing

我想实现简单的网站布局:

home.html必须呈现/one

/two/threeone.html必须相应地呈现two.htmlthree.htmlmain_page = Blueprint('main', __name__) category_page = Blueprint('category', __name__) @main_page.route("/") def home(): return render_template('home.html') @category_page.route('/<category>') def show(category): return render_template('{}.html'.format(category)) app = Flask(__name__) app.register_blueprint(main_page, url_prefix='/') app.register_blueprint(category_page, url_prefix='/categories')

到目前为止,我想出了以下代码:

categories

通过这种方式,我可以将/categories/<category>路由到/<category>。如何将home.html/相关联,同时将其定位到url_prefix='/'?感谢您的帮助

我尝试了两种方法:

  1. 为两个蓝图设置main_page =&gt;第二个不起作用。

  2. 而不是app.route('/')蓝图只使用home.html来呈现category_page。与{{1}}蓝图

  3. 混合使用时,此功能也不起作用

1 个答案:

答案 0 :(得分:5)

您可以将变量移动到注册语句中的url_prefix参数:

@main_page.route("/")
def home():
    return render_template('home.html')
app.register_blueprint(main_page, url_prefix='/')

@category_page.route('/')
def show(category):
    return render_template('{}.html'.format(category))        
app.register_blueprint(category_page, url_prefix='/<category>')

(这取决于整个模式的复杂性,但最好是使用接近每个函数的变量来保持注册语句以处理许多视图。)