python - 如何为 url_for 路径添加子文件夹?
问题描述
目前,我在此蓝图文件夹中有名为“分析”的蓝图和 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')
.
推荐阅读
- java - 不能改变整型变量的值
- asp.net-core - 使用数据库优先方法在 Blazor WebAssembly 中进行身份验证和授权
- javafx - JavaFX 更改字体大小会导致小文本出现几分之一秒
- python - 在 odoo13 中创建多条记录失败,但在 odoo12 中通过
- python - 试图告诉我的 pylint“太多局部变量”是什么,我该怎么办?
- mysql - 使用没有 SQLINjection 范围的 JPA 或 entityManager 查找列的不同值
- javascript - Vue,Vuex:访问嵌套反应类中的私有属性
- android - 防止由于“机器学习”(三星的 PkgPredictorService)而自动启动 Android 应用程序
- python - 如何找到意外缩进错误的原因
- java - Gradle+AspectJ找不到参数“'aspectj'不能应用于'(?,java.lang.String,?,?)'”的方法aspectj()