使用Flask实现收藏功能和分页功能

本文介绍了如何利用Flask框架为web应用添加收藏功能和分页功能。首先,更新了user模型以实现收藏功能,接着创建posts蓝图并更新相关模板。然后,详细阐述了分页功能的实现,包括在main.py中更新视图函数和添加模板macro.html来生成分页链接。

Flask实现的功能:

  • user模型的更新(添加收藏功能)
  • posts蓝图的建立
  • 相关模板的更新
  • 添加分页功能

目录结构:

目录结构

模型user.py更新收藏功能

user.py:

    # 添加收藏功能
    favorites = db.relationship('Posts', secondary='collections', backref=db.backref('users', lazy='dynamic'), lazy='dynamic')

    # 添加收藏
    def add_favorite(self, pid):
        p = Posts.query.get(pid)
        self.favorites.append(p)

    # 取消收藏
    def del_favorite(self, pid):
        p = Posts.query.get(pid)
        self.favorites.remove(p)

    # 判断是否已经收藏
    def is_favorite(self, pid):
        # 获取所有收藏的博客
        favorites = self.favorites.all()
        posts = list(filter(lambda p: p.id == pid, favorites))
        if len(posts) > 0:
            return True
        return False
添加相应的posts蓝本:

views中posts.py

from flask import Blueprint, jsonify
from flask_login import current_user


posts = Blueprint('posts', __name__)


@posts.route('/collect/<int:pid>')
def collect(pid):
    # 判断是否收藏
    if current_user.is_favorite(pid):
        # 取消收藏
        current_user.del_favorite(pid)
    else:
        # 添加收藏
        current_user.add_favorite(pid)
    # 将字典转为JSON字符串
    return jsonify({
  
  'result': 'ok'})

在__init__.py添加posts蓝本:

from .main import main
from .user import user
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值