【问题标题】:Return data from database using Flask, Flask-sqlalchemy, and jQuery使用 Flask、Flask-sqlalchemy 和 jQuery 从数据库返回数据
【发布时间】:2016-06-12 04:43:18
【问题描述】:

我希望 div.disp 获取要添加到数据库的数据的 id,它适用于第一次添加,但对于接下来的,它将与第一次添加的 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 应该有一个属性 id 是 last+1 添加到数据库中的数据

$(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() 但我不太了解它

【问题讨论】:

    标签: jquery python flask flask-sqlalchemy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我的朋友帮我解决了这个问题:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-18
        • 2014-03-25
        • 2017-09-20
        • 2018-06-13
        • 1970-01-01
        • 2013-02-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多