【发布时间】:2017-01-03 20:17:06
【问题描述】:
我正在学习带有蓝图的烧瓶,我有以下代码示例:
from flask import Flask, render_template, Blueprint, g
bp = Blueprint('language', __name__, url_prefix='/<int:language_id>', static_folder='static')
app = Flask(__name__)
@bp.url_defaults
def add_language_id(endpoint, values):
if 'language_id' in g:
values.setdefault('language_id', g.site_id)
else:
g.language_id = 1 # English
@bp.url_value_preprocessor
def pull_language_id(endpoint, values):
g.language_id = values.pop('language_id')
@bp.route('/')
def index():
return render_template('main.html')
@bp.route('/lang')
def language():
return render_template('lang.html')
app.register_blueprint(bp)
if __name__ == '__main__':
app.run()
但是我收到了这个错误:
werkzeug.routing.BuildError: 无法为端点构建 url 具有值 ['language_id'] 的“语言”。你的意思是'language.index' 代替?
这是 HTML 代码:
<ul>
<li>
<a href="{{ url_for('language', language_id=1) }}">English</a>
</li>
</ul>
如何纠正这个错误?
【问题讨论】:
-
我注意到你是社区的新手,这是你关于这个主题的第三个问题(到目前为止)。我强烈建议您阅读烧瓶和 python 的文档。