如何为 url_for 路径添加子文件夹?
How to add subfolder for url_for path?
目前我在此蓝图文件夹中有名为 'analytics' 和 views.py 的蓝图文件。
我所有的函数都存储在这个 views.py 文件中,我用 url_for 调用它们,例如:
url_for('analytics.get_all_equipped_armors')
url_for('analytics.gamerounds_basic_info')
url_for('analytics.get_average_kill_from_weapons')
我想在逻辑上将它们分开,而不是为我的数据库中存在的每个实体创建另一个蓝图。
我想将 url_for() 的端点与 url_for('analytics.armors.get_all_equipped')
之类的子文件夹一起使用,但似乎禁止为路径添加子文件夹。
如何使用 url_for 函数的子文件夹组织蓝图和端点的结构?
蓝图:
from flask import Blueprint
analytics = Blueprint('analytics', __name__, url_prefix='/analytics')
from . import views
函数:
@analytics.route('/armors/get-all-equipped', methods=['GET', 'POST'])
def get_all_equipped_armors():
form = LvlRangesForm()
if request.method == 'POST':
if form.validate_on_submit():
min_lvl = form.min_level.data
max_lvl = form.max_level.data
data = Armors.get_all_equipped(min_lvl=int(min_lvl), max_lvl=int(max_lvl))
return render_template('analytics/armors/all_equipped_armors.html', form=form, data=data, result=True)
return render_template('analytics/armors/all_equipped_armors.html', form=form)
这可能太简单了,但是没有必要在端点函数名中复制所有的路由信息。您可以保持 url_for() 调用不变,只更改模板文件的组织。
或者,您可以按照问题中显示的方式命名端点,但使用下划线作为逻辑分隔符:url_for('analytics.armors_get_all_equipped')
.
目前我在此蓝图文件夹中有名为 'analytics' 和 views.py 的蓝图文件。 我所有的函数都存储在这个 views.py 文件中,我用 url_for 调用它们,例如:
url_for('analytics.get_all_equipped_armors')
url_for('analytics.gamerounds_basic_info')
url_for('analytics.get_average_kill_from_weapons')
我想在逻辑上将它们分开,而不是为我的数据库中存在的每个实体创建另一个蓝图。
我想将 url_for() 的端点与 url_for('analytics.armors.get_all_equipped')
之类的子文件夹一起使用,但似乎禁止为路径添加子文件夹。
如何使用 url_for 函数的子文件夹组织蓝图和端点的结构?
蓝图:
from flask import Blueprint
analytics = Blueprint('analytics', __name__, url_prefix='/analytics')
from . import views
函数:
@analytics.route('/armors/get-all-equipped', methods=['GET', 'POST'])
def get_all_equipped_armors():
form = LvlRangesForm()
if request.method == 'POST':
if form.validate_on_submit():
min_lvl = form.min_level.data
max_lvl = form.max_level.data
data = Armors.get_all_equipped(min_lvl=int(min_lvl), max_lvl=int(max_lvl))
return render_template('analytics/armors/all_equipped_armors.html', form=form, data=data, result=True)
return render_template('analytics/armors/all_equipped_armors.html', form=form)
这可能太简单了,但是没有必要在端点函数名中复制所有的路由信息。您可以保持 url_for() 调用不变,只更改模板文件的组织。
或者,您可以按照问题中显示的方式命名端点,但使用下划线作为逻辑分隔符:url_for('analytics.armors_get_all_equipped')
.