flask中如何捕获web用户的点赞行为

43次阅读

最近在学习flask, 遇到一个新问题

flask中如何捕获web用户的点赞行为 ,就是下图中,用户点了赞后,数字加1,这个事件flask在服务器端如何捕获,本人web小白,希望各位指导!谢谢
图片描述

猫哥

一般的思路可以基于 MVC 的模式.
如.

你在后台有一个这样的 Model

其作用是: 维护一个键值类型的数据结构{'blog_name': vote_count}, 将每一篇日志的点赞数保存起来

这里我们使用通用的键值数据库redis来实现上面的数据结构)

#!/usr/bin/env python
# my_model.py

class Vote:

    @classmethod
    def new(self, artice_name):
        key = generate_redis_key(artice_name)  # 生成此篇日志在 redis 中的 key 值
        redis.incr(key)   # 将此 key 值的计数加一. 即"点赞数"加一
    # other code ... 

当然, 这个 model 是不完整的, 你还要开发, 判断点赞的的这个用户是否已经给这篇日记点过赞, 取消点赞, 统计点赞数之类的功能和细节…

然后, 你要写一个函数, 用来调用你的model. 也就是实现Controller

#!/usr/bin/env python
# my_controller.py

# import some_module, ...
from my_model import Vote

@app.route('/vote/<article_name>')
def vote(article_name):
    Vote.new(article_name)
    # other code... ...  

最后, 为了捕获用户的点赞行为, 你需要在前端写一段 JavaScript 代码. 它将点赞的文章名, 点赞的用户, 点赞的时间等数据传送到 Controller 去.

也就是发送一个 Post 请求到我们在 Controller 里定义好的URL上

# my_js.js
# require jQuery

$(document).ready(function(){
    $("vote_button").click( function() {
        # post the data to /vote/<article_name>
    }
}

以上.

NIO

这个一般都是用javascript实现的吧。

TwIStOy

ajax 是个好东西。

damnever

正文完