簡體   English   中英

使用Flask,Flask-sqlalchemy和jQuery從數據庫返回數據

[英]Return data from database using Flask, Flask-sqlalchemy, and jQuery

我希望div.disp獲得要添加到數據庫中的數據的ID,它適用於第一次添加,但對於下一個添加,它將與第一次添加相同。

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

按照我的想法,div.disp應該具有最后+1個添加到數據庫中的數據的屬性ID

$(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();
    });
});

我目前正在查看db.session.refresh(),但我不太了解

_add端點返回json類型的對象比渲染模板要好得多

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

我的朋友為我解決了這個問題:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM