我让蓝图正常工作。
应用结构:
application.py
users/routes.py
Run Code Online (Sandbox Code Playgroud)
在 application.py 中,我注册了蓝图:
app.register_blueprint( users, url_prefix = '/users' )
Run Code Online (Sandbox Code Playgroud)
在 users/routes.py 我创建它:
users = Blueprint( 'users', __name__, template_folder = "usersViews" )
@users.route( '/registration', methods = [ 'GET' ] )
def get_register_user_form( ):
# Code......
Run Code Online (Sandbox Code Playgroud)
我需要做的是将其他文件添加到我需要使用 @users.route 的 users/ 中,如下所示:
users/route2.py
users/route3.py
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为蓝图仅在原始 users/routes.py 中创建。我不确定处理这种情况的正确方法?我想在每个路由文件中重新创建蓝图 users = Blueprint( 'users', name , template_folder = "usersViews" ) 不是正确的方法。那么我怎么能做到这一点呢?
我会将其中的一些拆分成这样的__init__.py文件:
应用结构:
__init__.py (main app)
users/__init__.py (for blueprint)
users/routes.py
users/routes2.py
users/routes3.py
Run Code Online (Sandbox Code Playgroud)
然后,在主要__init__.py设置中,您的蓝图:
app = Flask(__name__)
from .users import users as user_blueprint
app.register_blueprint(user_blueprint, url_prefix='/users')
return app
Run Code Online (Sandbox Code Playgroud)
现在,在你users/__init__.py这样的事情中:
from flask import Blueprint, url_for
users = Blueprint('users', __name__)
from . import routes, routes2, routes3
Run Code Online (Sandbox Code Playgroud)
然后在users/routes.py,users/routes2.py等:
from . import users
Run Code Online (Sandbox Code Playgroud)
警告:我从来没有真正这样做过!但这是我用于 Flask 蓝图的模式,它似乎可以解决您的问题。
| 归档时间: |
|
| 查看次数: |
3044 次 |
| 最近记录: |