如何为url_for路径添加子文件夹?

时间:2019-03-08 13:15:38

标签: python flask url-for

当前,我在此蓝图文件夹中有一个名为“ 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)

1 个答案:

答案 0 :(得分:1)

这可能太简单了,但是没有必要在端点功能名称中复制所有路由信息。您可以直接保持 url_for()调用,而仅更改模板文件的组织。

或者,您可以按照问题中显示的方式来命名端点,但可以使用下划线来构成逻辑分隔符:url_for('analytics.armors_get_all_equipped')