2016-11-30 71 views
0

我得到藍圖正常工作。如何組織一個藍圖與多個路線文件

應用結構:

application.py 

users/routes.py 

在application.py我註冊的藍圖:

app.register_blueprint(users, url_prefix = '/users') 

而且在用戶/ routes.py我創建它:

users = Blueprint('users', __name__, template_folder = "usersViews") 
@users.route('/registration', methods = [ 'GET' ]) 
def get_register_user_form(): 
    # Code...... 

我需要做的是將其他文件添加到用戶/從中我需要使用@ users.route像在:

users/route2.py 

users/route3.py 

但是這不起作用,因爲藍圖只在原始users/routes.py中創建。我不確定處理這種情況的正確方法?我猜想用users = Blueprint('users',名稱,template_folder =「usersViews」)重新創建每個路徑文件中的藍圖並不是正確的方式。那麼我怎麼能做到這一點?

+0

在route2.py中,'from routes import users'怎麼樣? –

+0

嗯,你從哪裏得到「路線」? –

+1

這是您創建藍圖的第一個文件的名稱。 –

回答

1

我會分裂一些這方面出到__init__.py文件是這樣的:

應用結構:

__init__.py (main app) 
users/__init__.py (for blueprint) 
users/routes.py 
users/routes2.py 
users/routes3.py 

然後,在主__init__.py設置您的藍圖:

app = Flask(__name__) 

from .users import users as user_blueprint 
app.register_blueprint(user_blueprint, url_prefix='/users') 

return app 
現在

,在你的users/__init__.py這樣的事情:

from flask import Blueprint, url_for 

users = Blueprint('users', __name__) 

from . import routes, routes2, routes3 

然後在users/routes.pyusers/routes2.py等:

from . import users 

警告:我從來沒有真正做到了這一點!但這是我用於Flask藍圖的模式,它似乎可以解決您的問題。

+0

天才,這是工作,祕密是在init文件中! –

+0

太棒了,很高興我能幫到你! – abigperson

+1

謝謝!爲什麼從。導入路由,routes2,routes3需要在用戶之後= ....在用戶/ __ init__.py中? –