2

非常に単純なアプリケーションでフラスコの url_for('') エラーが発生しました。

from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound

base = Blueprint('main', __name__)

@base.route('/', defaults={'page':'home'})
@base.route('/<page>')
def show(page):
    try:
        return render_template('%s.html'%page, name='my name is')
    except TemplateNotFound:
        abort(404)

上記は私の設計図ファイルです。これらのルートは正常に機能しますが、実行しようとすると

with flask.test_request_context():
    print url_for('home') #home.html or any other forms

次のエラーが表示されます。

raise BuildError(endpoint, values, method)
werkzeug.routing.BuildError: ('home', {}, None)

ここで何が起こっているのかを理解するのを手伝ってくれる人はいますか? 私のhtmlページでは、静的ファイルの場所を次のように印刷できます。

{{ url_for('static', filename='style.css') }}

しかし、私がやろうとすると:

{{ url_for('home') }}

繰り返しますが、同じエラーが発生します。どのように進めるかについて、誰かアドバイスがありますか?

4

2 に答える 2

3

これを行う{{ url_for('home') }}と、home.html のルートは返されず、代わりに関数のルートが返されますがhome、これは存在しません。

したがって、問題を解決するには、適切な使用方法url_forは次のとおりです。

{{ url_for('show') }}
于 2014-10-20T06:39:03.127 に答える