本文最后更新于:2024年5月11日 下午
在成功建立本地 Waline 服务后,我们自己掌控了数据库,可以做更多事情,本文记录基于本地数据库的 Waline 为文章添加评论数统计的方法。
背景
- 需要 独立部署 Waline 并掌握当前数据库
 - 在独立建立的 PVUV 统计 基础上添加内容
 - 由于我的 Waline 部署在了 MongoDB 上,因此本文以 MongoDB 数据库为例
 
统计思路
- 在 MongoDB 中,我们已经可以获取评论数据库,那么在访问页面时,后台实时根据访问链接查询评论数据库对应的记录数量返回即可
 - MongoDB 计数 可以统计指定 
url文档数量 
修改 Python 代码
- 在 PVUV 统计 的Python 后台中,类需要在初始化时和数据库建立链接
 
1  |  | 
- 在获得 
url后查询评论数返回 
1  |  | 
- 统计 pvuv 时顺便统计评论数
 
1  |  | 
- 在 Flask 路由中加入返回 json 的内容
 
1  |  | 
- 
也就是说访问该链接后返回
1
{'pv': 3, 'uv': 1, 'cn': 0}之类的信息
 
修改主题
- 
修改
themes\fluid\layout\_partials\post\meta-top.ejs文件(在 PVUV 修改基础上) - 
前端代码加入评论数:
1
2
3
4
5
6
7
8<span id="vvdpost_container_page_pvuv" style="display: none">
<i class="iconfont icon-eye" aria-hidden="true"></i>
<%- views_texts[0] %><span id="vvdpost_value_page_pv">0</span><%- views_texts[1] + '  ' %>
<i class="iconfont icon-users" aria-hidden="true"></i>
<%- views_texts[0] %><span id="vvdpost_value_page_uv">0</span><%- ' 人  ' %>
<i class="iconfont icon-comment" aria-hidden="true"></i>
<%- views_texts[0] %><span id="vvdpost_value_page_cn">0</span><%- ' 条' %>
</span> - 
script 代码获取后端返回数据,解析填入前端代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15if (pvCtn) {
var pv_ele = document.querySelector('#vvdpost_value_page_pv');
console.log(pv_ele);
var uv_ele = document.querySelector('#vvdpost_value_page_uv');
console.log(uv_ele);
var cn_ele = document.querySelector('#vvdpost_value_page_cn');
console.log(cn_ele);
if (uv_ele && uv_ele) {
pv_ele.innerText = obj.pv;
uv_ele.innerText = obj.uv;
cn_ele.innerText = obj.cn;
pvCtn.style.display = 'inline';
}
}
} 
效果展示

参考资料
文章链接:
https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-waline-comment-num/comment-num/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
							微信支付
							支付宝支付
Fluid -27- 基于本地 Waline 为文章添加评论数统计
      https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-waline-comment-num/comment-num/