2016-06-13 10 views
-1

Ich versuche, eine einfache Python-Funktion auszuführen, durch die ich Datenbank dynamisch über ein Bootstrap-modales Fenster aktualisieren möchte. Kann nicht identifizieren einen Fehler da ... und die gleichen Fehler wieder auftritt ... Bitte helfen Sie mir hier raus ..400 Schlechte Anfrage Fehler ..... Flask python 2.7

from flask import Flask, render_template, redirect, json, request,session, url_for, jsonify 
from flask.ext.mysql import MySQL 
from werkzeug import generate_password_hash, check_password_hash 

@app.route('/updatepost', methods = ['POST', 'GET']) 
def updatepost(): 
     try: 
       if session.get('user'): 
         _posttitle = request.form['postt'] 
         _postcontent = request.form['postd'] 
         _postiid = request.args.get('id') 
         con = mysql.connect() 
         cursor = con.cursor() 
         print 555 
         #cursor.execute("UPDATE addpost SET post_title= 'apple' , post_content ='a fruit' WHERE Id = '" + _postiid + "'") 
         cursor.execute("UPDATE addpost SET post_title='" + str(_posttitle) + "', post_content ='" + str(_postcontent) + "' WHERE Id = '" + str(_postiid) + "'") 

         con.commit() 

         return redirect('/userhome') 
         cursor.close() 
         con.close() 
       else: 
         return redirect('/') 
     except Exception as e: 
       return render_template('error.html', error = str(e)) 

Mein HTML-Code ..

<div class="modal fade" id="editModal" role="dialog"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times; 
     </span><span class="sr-only">Close</span></button> 
     <h4 class="modal-title" id="editModalLabel">Edit Update</h4> 
     </div> 
     <div class="modal-body"> 
     <form role="form" method= POST> 
      <div class="form-group"> 
      <label for="recipient-name" class="control-label">Title:</label> 
      <textarea class="form-control" name="postt" id="editTitle"></textarea> 
      </div> 
      <div class="form-group"> 
      <label for="message-text" class="control-label">Description:</label> 
      <textarea class="form-control" name="postd" id="editDescription"></textarea> 
      </div> 

     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     <button id="btnUpdate" name = "abc" type="button" onclick = "proceedupdate()" class="btn btn-primary">Update</button> 
     </div> 
     </form> 
     </div> 
    </div> 
    </div> 
</div> 
+1

alle Nachrichten in Ihrer Browserkonsole? und Python-Konsole auch? – glls

+0

Ja, weder in Python-Konsole noch auf Browser-Konsole ... –

+0

vielleicht ist es nur eine schlechte Kopie einfügen, aber unter Versuch: Es gibt zu viele Leerzeichen (2 Registerkarten anstelle von 1) – glls

Antwort

0

es scheint, dass Sie nicht Ihre request.post unter Update Handhabung():

@app.route('/something', methods=['GET', 'POST']) 
def something(): 
    """ 
    form, retrieves variables when using POST 
    """ 
    try: 

     if request.method == 'POST': 
      #do something 
     else: 
      #do something else 
    except Exception as e: 
     print(e) 

da in Ihrem hTML Sie die post-Methode auf Formular submition angeben:

form role="form" method= POST> 

Sie sollten den "POST" innerhalb def Updatepost() behandeln: im Moment behandelt es nur GET-Anfragen und tut nichts, wenn die Anfrage-Methode POST ist.

+0

Bekam es, und jetzt funktioniert es gut ,,,, danke :) –

Verwandte Themen