2017-06-29 2 views
1

je le code suivant dans Html:Flask url_for ne passant pas les paramètres

{% 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 %} 

Cependant je reçois l'erreur suivante: canel_event manquant 1 nécessaire argument de position: 'ID'. Voici le code du flacon:

@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') 

Je n'ai aucune idée de ce que je fais mal. S'il vous plaît aider

Répondre

1

Vous devez donner votre nom à la demande par la poste ou obtenir method.Then prendre de l'exemple demande.Pour, par courrier:

@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') 

lire ce peut être l'aide: http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data