从模板烧瓶保存字典到数据库

时间:2017-03-06 00:50:10

标签: python dictionary flask flask-sqlalchemy

我有一个html模板,它循环遍历字典列表并提供键的值:

{% for x in data[0:5] %}
    <td id='{{data[x]}}'>
        <p> {{ x['score'] }} </p>
        <a href="{{x['url']}}"> {{ x['title'] }} </a>
        <br>
        <a href='#' id='save_post'><button> Add To Favorites </button></a>
    </td>
{% endfor %}

这段html底部的标记是调用ajax请求将此特定字典保存到数据库中。因此,基本上如果按下按钮,它会将该索引(即字典)保存到数据库中。

我尝试了一些不同的东西,但我现在拥有的是:

@app.route('/add_to_favorites', methods=['POST'])
def add_to_favorites(post):
    data = get_info()
    post = data[x]
    fav= Favorite(title=post.get('title'), url=post.get('url'), score=post.get('score'), user_id=current_user.id)
    db.session.add(fav)
    db.session.commit()

然而我得到了500回复而帖子没有保存。

如何让我的字典成为一个对象,以便我可以使用模板上的按钮将对象保存到数据库?我在这做错了什么?

AJAX请求:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script type=text/javascript>
    $(function() {
        $('a#add_to_favorites').bind('click', function() {
          $.ajax({
              type : 'POST',
              url : '/add_to_favorites'
          });
          console.log('working');
        });
    });
  </script>

0 个答案:

没有答案