2016-06-12 5 views
0

Ich möchte div.disp, um die ID der Daten zur Datenbank hinzugefügt werden, funktioniert es für die erste Zugabe, aber für die nächsten, wird es sein die gleiche ID wie die erste add.Zurückgeben von Daten aus der Datenbank mit Flask, Flask-sqlalchemy und jQuery

@app.route('/') 
@app.route('/index') 
def index(): 
    tsklst = models.User.query.order_by('id asc').all() 
    last = tsklst[len(tsklst)-1].id+1 
    return render_template('index.html',last=last) 

@app.route('/_add') 
def add_(): 
    toDo = request.args.get('task') 
    u = models.User(task = str(toDo)) 
    db.session.add(u) 
    db.session.commit() 
    return render_template('index.html') 

von meiner Idee, div.disp sollte ein Attribut ID des letzten haben + 1 Daten in die Datenbank hinzugefügt

$(document).ready(function(){ 
    $('#btnTask').click(function(){ 
     if ($('#txtTask').val()!=''){ 
      $.getJSON('/_add',{ 
       task: $('#txtTask').val(), 
      }); 
      $('.content').append("<div class='disp' id='{{ last }}'><div class='left'>"+$('#txtTask').val()+"</div><input type='checkbox' class='chkbk'></div>"); 
     } 
     $('#txtTask').val(''); 
     $('#txtTask').focus(); 
    }); 
}); 

ich zur Zeit bei db.session.refresh suchen(), aber ich verstehe nicht ganz, es

Antwort

1

es wird viel besser sein, ein json Typ Objekt von _add Endpunkt zurückzukehren, anstatt zu machen eine Vorlage

@app.route('/_add') 
def add_(): 
    toDo = request.args.get('task') 
    u = models.User(task = str(toDo)) 
    db.session.add(u) 
    db.session.commit() 
    task = {} 
    task['id'] = u.id 
    task['content'] = u.content 
    return jsonify(task=task) 
+0

tnx für die Idee – zxc

0

mein Freund das Problem für mich gelöst:

content ="<div class='disp' id='"+str(u.id)+'><div class='left'>"+$('#txtTask').val()+"</div><input type='checkbox' class='chkbk'></div>" 
return content 
Verwandte Themen