在Flask视图中将kwargs传递给url_for

时间:2016-08-01 17:20:40

标签: python flask

我将一些kwargs传递给url_for,但视图功能中的**kwargs并未获得它们。我如何获得额外数据?

档案admin.py

@admin_bp.route('/alerts', methods=['GET'])
def display_alerts(**kwargs):
    print kwargs
    alert_sorted = Alert.query.filter_by(**kwargs).all()
index.html
<a href="{{ url_for('admin.display_alerts', {'user_id':val.user_id} )}}">Show User Alerts</a>

档案models.py

class Alert(db.Model):
    __tablename__ = 'alert'
    __table_args__ = {'extend_existing': True}

    alert_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.BigInteger, db.ForeignKey('users.user_id'), nullable=False)
    name = db.Column(db.String(ALERT_NAME_MAX_SIZE), nullable=False)

我无法修改函数display_alerts(**kwargs),因为它被许多其他函数使用。我的问题是要了解如何将kwargs参数发送到HTML中的url_for()函数。

1 个答案:

答案 0 :(得分:1)

您正在寻找request.args。传递给url_for的任何未知关键字参数将用于填充查询字符串。然后通过request.args公开查询字符串。

@admin_bp.route('/alerts')
@admin_auth
def display_alerts():
    print(request.args)