2016-08-07 30 views
0

問題の説明青写真「属性 『関数』オブジェクトが属性 『名前』を持っていない

フラスコを起動しようとすると、エラーメッセージを取得する。

Traceback (most recent call last): 
    File "./run.py", line 3, in <module> 
    from app import app 
    File "/home/xxxxxx/xxxx.xxxxxxx.com/ClientTracker/app/__init__.py", line 13, in <module> 
    app.register_blueprint(admin) 
    File "/home/xxxxx/xxxxx.xxxxxxx.com/ClientTracker/env/local/lib/python2.7/site-packages/flask/app.py", line 65, in wrapper_func 
    return f(self, *args, **kwargs) 
    File "/home/xxxxx/xxxxx.xxxxxxx.com/ClientTracker/env/local/lib/python2.7/site-packages/flask/app.py", line 958, in register_blueprint 
    if blueprint.name in self.blueprints: 
AttributeError: 'function' object has no attribute 'name' 

これは単純な階層からの移行であります

この手順をステップごとに作成し、は、両側が正常に動作しています 移行を開始しました(機能とルート)。いくつかのコードを動かした後、私はエラーメッセージを得るようになりました(基本的には上記と同じですが、異なる行)。 stackO

  • の関連記事を通じて検索

    トラブルシューティング

    • 最初はそれが私が持っていた第2の経路計算書不満ました。私は 私は(考えられた)知られている 良い状態にコードを削除(ロールバック)を開始しました。しかし、私は引き続き問題を抱えていました。
    • 私は必要最低限​​のコードを持っていますが、依然として のエラーが発生しています。
    • .pyファイルの登録を削除した場合、フロントエンドは と完全に動作します。

    コード

    #ClientTracker/run.py 
    #!env/bin/python 
    
    from app import app 
    app.run(host='0.0.0.0', port=8080, debug=False) 
    

    #ClientTracker/app/__init__.py 
    
    # Import flask and template operators 
    from flask import Flask, render_template 
    
    # Define the WSGI application object 
    app = Flask(__name__) 
    
    # Import a module/component using its blueprint handler variable (mod_auth) 
    #from app.mod_auth.controllers import mod_auth as auth_module 
    from app.admin.views import admin 
    from app.client.views import client 
    
    # Register blueprint(s) 
    app.register_blueprint(admin) 
    app.register_blueprint(client) 
    

    #ClientTracker/app/admin/views.py 
    from flask import render_template, request, Blueprint 
    from app import app 
    import MySQLdb 
    import datetime 
    
    admin = Blueprint(
        'admin', 
        __name__, 
        url_prefix='/admin', 
        template_folder='templates', 
        static_folder='static' 
    ) 
    
    @admin.route('/') 
    def admin(): 
        return "ok" 
    

    私はアイデアの出です。

  • 答えて

    6

    私は1時間見ていますが、もう15分は質問を作ってから投稿をヒットした後、私は答えを見つけます。

    回答があった投稿(https://github.com/pallets/flask/issues/1327)が見つかりました。

    基本的には、青写真の名前と同じ名前の関数名を使用することはできません。今は明らかだが、しばらく私を困らせた。

    私の元の「働く」状態には、「/」を扱うダミー関数名がありました。私がロールバックしたとき、私は十分に遠くまでロールバックしなかった。

    def admin()をdef admin1()に置き換えました。(これをprodでよく修正します)、すべてが機能しました。

    この投稿が他の人に役立つことを願っています。まだコメントしてください。いつものように、グループは常に個人より賢いです。最後に、これまでに読んでいただきありがとうございます。 :-)

    関連する問題