0
404ページのテンプレートが正しくレンダリングされない理由を理解しようとしています。私はテキストを返すことができますが、テンプレートは返すことができません。ここでは動作しません、私のエラーハンドラ関数は次のとおりです。Flask 404 Page Not Rendering Template
@app.errorhandler(404)
def page_not_found(error):
return render_template('error.html'), 404
それは私が代わりにこのような何かあれば動作します。
@app.errorhandler(404)
def page_not_found(error):
return '<h2>Page Not Found.</h2><a href="/">Click here</a> to return home.', 404
を私はルートに私のURLの残りの部分を青写真を使用しています。ここで
main = Blueprint('main', __name__, url_prefix='/language/<lang_code>/')
app.config.from_object(__name__)
babel = Babel(app)
def render(template_name, data):
template_data = {
}
template_data.update(data)
return render_template(template_name, **template_data)
@app.url_defaults
def set_language_code(endpoint, values):
if 'lang_code' in values or not session['lang_code']:
return
if app.url_map.is_endpoint_expecting(endpoint, 'lang_code'):
values['lang_code'] = session['lang_code']
@app.url_value_preprocessor
def get_lang_code(endpoint, values):
if values is not None:
session['lang_code'] = values.pop('lang_code', None)
@app.before_request
def ensure_lang_support():
lang_code = session['lang_code']
if lang_code and lang_code not in app.config['SUPPORTED_LANGUAGES'].keys():
return abort(404)
@babel.localeselector
def get_locale():
if session.get('lang_code') is None:
session['lang_code']=request.accept_languages.best_match(app.config['SUPPORTED_LANGUAGES'].keys())
return session['lang_code']
@app.route('/')
def root():
return redirect(url_for('main.index_en', lang_code='en'))
@main.route('accueil', endpoint="index_fr")
@main.route('home', endpoint="index_en")
def index():
return render('index.html', {})
app.register_blueprint(main)
私は取得していますエラーです:ここに私urls.pyの詳細ですなぜこれが起こってすることができる
File "lib/python2.7/site-packages/flask/helpers.py", line 296, in url_for appctx.app.inject_url_defaults(endpoint, values)
File "lib/python2.7/site-packages/flask/app.py", line 1623, in inject_url_defaults func(endpoint, values)
File "app/urls.py", line 35, in set_language_code if app.url_map.is_endpoint_expecting(endpoint, 'lang_code'):
File "lib/python2.7/site-packages/werkzeug/routing.py", line 1173, in is_endpoint_expecting for rule in self._rules_by_endpoint[endpoint]:
KeyError: u'None'
任意のアイデアは?