2012-09-16 11 views
5

Flaskでモジュラーアプリケーションを構築していますが、現在のBlueprintの別のBlueprintの関数を参照するとビルドエラーが発生します。 ファイルuserProfiles.py別のファイルにFlask url_forはモジュールアプリケーションでルーティングするときにエラーを返します

@userP.route('/myProfile/', methods=['GET']) 
def showProfile(): 
    ..... 

アンuserAccounts.py私は

@userA.route('/login/', methods=['GET', 'POST']) 
def login(): 
    ..... 

を持っているし、私はすべての青写真を登録し、()

app.runんmain.pyを持っています

今、私はshowProfile関数からurl_for( 'userA.login)を実行しようとしていますが、 - werkzeug.routing.BuildError - を取得し続けています。私はこれを解決することができませんでしたし、オンラインのソリューションのうちのどれもが私を助けませんでした。

P.S. url_for関数は、私のテンプレートでも機能しません。何らかの理由で関数を受け取っていないため、パスにhrefするだけです。

ちょうど私がすべてで重複した機能を肝炎はありません少しビットより多くの情報を追加するために、すべての機能とその名前が一意であり、なurl_forルーティングがトレースバックです。ここ各青写真

以内に正常に動作します:

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1701, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1689, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/home/cevdet/PycharmProjects/FlaskProjects/jobperfect/userProfiles.py", line 126, in showProfile 
    else: return redirect(url_for('userA.login')) 
    File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 361, in url_for 
    return appctx.app.handle_url_build_error(error, endpoint, values) 
    File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 354, in url_for 
    force_external=external) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/routing.py", line 1607, in build 
    raise BuildError(endpoint, values, method) 
BuildError: ('userA.login', {}, None) 
127.0.0.1 - - [17/Sep/2012 23:55:12] "GET /myP 
+1

ポスト全体のバックトレース。 – Blender

+1

両方の青写真がアプリに登録されているコードも表示してください。 –

答えて

7

青写真をどのように宣言しましたかuserA?あなたは、最初の引数のための青写真が割り当てられたことがない変数名を渡すよう

あなたは青写真とurl_for()を使用して、(青写真識別子など)エンドポイントの文字列の接頭辞は、青写真のを名でなければなりません。あなたは上記のような青写真を宣言した場合

subapp = Blueprint('profile', __name__) 

@subapp.route('/<username>') 
def fetch_profile(username): 
    pass 

、あなたは以下のようなurl_for()を呼び出す必要があります:

url_for('profile.fetch_profile', username=arg) 
関連する問題