添加收藏当前面

本文介绍了一种使用JavaScript实现网页收藏功能的方法,通过调用浏览器的外部接口来完成将当前页面添加到用户的收藏夹中。此功能适用于希望提供便捷收藏选项的网站。

<script type="text/javascript">
 function AddFavorites()
 {
   window.location.href = window.location.href;
    window.external.addFavorite(window.location.href,'Title)

 }
</script>

 

 <a class="lanzi" href="#"  onclick="javascript:window.external.AddFavorite(location.href,document.title)">加入收藏</a></div>

转载于:https://www.cnblogs.com/freexiaoyu/archive/2009/03/27/1423456.html

### 如何在 Flask 中实现添加收藏功能 要在 Flask 中实现添加收藏功能,可以按照以下方式设计数据库模型、编写路由逻辑以及处理用户认证。以下是详细的说明: #### 1. 数据库设计 为了支持用户的收藏功能,通常需要创建两个主要表:`users` 表存储用户信息,`favorites` 表用于记录用户的收藏项。 ```python from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) class Favorite(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) item_id = db.Column(db.String(255), nullable=False) # 假设收藏的是某个物品ID created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) user = db.relationship('User', backref='favorites') ``` 上述代码定义了一个 `Favorite` 模型[^3],其中包含了用户 ID 和被收藏项目的唯一标识符(如商品 ID 或文章 ID)。通过外键关联到 `User` 模型,从而能够追踪哪些项目是由哪个用户收藏的。 #### 2. 添加收藏的 API 路由 下是一个简单的 RESTful 风格的 API 接口,允许经过身份验证的用户向其账户中添加收藏项。 ```python from flask import request, jsonify import jwt from functools import wraps from app import app, db SECRET_KEY = 'your_secret_key' def token_required(f): @wraps(f) def decorated(*args, **kwargs): token = None if 'Authorization' in request.headers: token = request.headers['Authorization'].split(" ")[1] if not token: return jsonify({'message': 'Token is missing!'}), 401 try: data = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) current_user = User.query.filter_by(id=data['id']).first() except Exception as e: return jsonify({'message': f'Token is invalid {str(e)}'}), 401 return f(current_user, *args, **kwargs) return decorated @app.route('/add_favorite/<item_id>', methods=['POST']) @token_required def add_favorite(current_user, item_id): new_favorite = Favorite(user_id=current_user.id, item_id=item_id) db.session.add(new_favorite) db.session.commit() return jsonify({"message": "Item added to favorites"}), 201 ``` 此部分实现了基于 Token 的用户认证,并提供了一条 `/add_favorite/` 路径让已登录用户提交他们想要收藏的内容 ID[^1]^。 #### 3. 删除收藏的 API 路由 同样地,也可以为用户提供删除已有收藏的功能。 ```python @app.route('/remove_favorite/<item_id>', methods=['DELETE']) @token_required def remove_favorite(current_user, item_id): favorite_to_delete = Favorite.query.filter_by( user_id=current_user.id, item_id=item_id).first_or_404(description="No such favorite exists") db.session.delete(favorite_to_delete) db.session.commit() return jsonify({"message": "Item removed from favorites"}), 200 ``` 这段代码提供了移除指定收藏项的能力,同时继续利用前提到的身份验证装饰器来确认操作者的合法性[^4]^。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值