python – 用于在数据从链接操作或表单转换为mongodb集合后更新Flask模板的AJAX

我有一个项目,其中mongodb记录通过Flask在浏览器中呈现.我在浏览器中也有一些交互,允许用户更新数据库中的记录.因此,例如,单击“投票给我”链接,您可以在记录上增加“​​投票”.然后该记录的投票结果将出现在“为我投票”链接旁边.

但是,目前我的投票路线看起来像这样,我必须重新加载页面以更新浏览器中的投票结果:

@app.route('/Vote_up/<this_record>')
def Vote_up(this_record):

    vandalisms.update({'_id':bson.objectid.ObjectId(this_record)}, 
                  {"$inc" : { "Votes": 1 }}, upsert=True)

    return redirect("/")

在这里查看了jquery和flask的烧瓶文档http://flask.pocoo.org/docs/patterns/jquery/,并了解那里发生了什么,但是没有看到如何扩展到我想先更新mongodb集合然后重新加载div的情况或者指定从更新记录中呈现的新投票,例如

    <span id='Vote_tally'> {{ item.Votes }} </span>

如果不必重新加载整个页面,我必须做什么才能将该行程包含到数据库并返回浏览器?

解决方法:

我所做的是将这样的东西挂钩到click事件:

$('#Vote_tally').load('/Vote_up/3452/');

“ajax”url返回我想要修改的HTML的位置.

@app.route('/Vote_up/<this_record>')
def Vote_up(this_record):
    if already_Voted_for(this_record):
        return """<script type="text/javascript">
                       alert('You can only Vote once');
            </script>{0}""".format(count_Votes_for(this_record))

    vandalisms.update({'_id':bson.objectid.ObjectId(this_record)}, 
              {"$inc" : { "Votes": 1 }}, upsert=True)

    return count_Votes_for(this_record)

相关文章

MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 S...
笔者今天要分享的是一个项目重构过程中如何将数据库选型由原...
mongodb/mongoTemplate.upsert批量插入更新数据的实现
进入官网下载官网安装点击next勾选同意,点击next点击custom...
头歌 MongoDB实验——数据库基本操作
期末考试复习总结