【问题标题】:Flask url_for not passing parameters烧瓶 url_for 不传递参数
【发布时间】:2023-03-09 21:00:01
【问题描述】:

我在 Html 中有以下代码:

{% for i in events %}
        <li>
            <strong>{{i.event_title}}</strong><br />
            {{i.descript}} <br />
            {{i.customer_id}}<br/>
            <small>{{i.date}}</small>
            </br>
            <a href="{{url_for('cancel_event',ID=i.event_id)}}">Cancel this event</a>
        </li>
    {% else %}
        <li><strong>You have no events scheduled</strong>
    {% endfor %}

但是我收到以下错误:canel_event 缺少 1 个必需的位置参数:“ID”。这是烧瓶代码:

@app.route('/cancel/')
def cancel_event(ID):
    if not ID:
        abort(401)
    Event.query.filter_by(Event.event_id == ID).delete()
    db.session.commit()
    return render_template('cancel.html')

我不知道我做错了什么。请帮忙

【问题讨论】:

    标签: python-3.x jinja2 flask-sqlalchemy


    【解决方案1】:

    您应该通过邮寄或get方法在请求中提供您的ID。然后从请求中获取它。例如,邮寄:

    @app.route('/cancel/', method=['POST','GET'])
    def cancel_event():
        ID = None
        if request.method == 'POST':    # get ID in the request
            ID = request.files['ID']
        if not ID:
            abort(401)
        Event.query.filter_by(Event.event_id == ID).delete()
        db.session.commit()
        return render_template('cancel.html')
    

    阅读这可能会有所帮助:http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data

    【讨论】:

      猜你喜欢
      • 2022-07-09
      • 2019-03-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多