2024-05-26 10:50:00 发布
网友
https://flask-limiter.readthedocs.io/en/stable/
我正在查看Flask Limitor的文档,我无法找到如何对每个用户的限制进行评级,所有内容都是全局性的。例如,与其将其设置为所有用户最多200个请求,我如何使单个用户每天最多200个请求?(IP或任何其他标识,我不知道使用了什么)
我在recipes中找到了这个:
Rate limiting a route by current user (using Flask-Login):
@route("/test") @login_required @limiter.limit("1 per day", key_func = lambda : current_user.username) def test_route(): return "42"
更新:添加简单示例
下面是一个简单的烧瓶应用程序,它实现了配方,为您提供了更好的想法:
from flask import Flask, redirect from flask_login import ( LoginManager, UserMixin, current_user, login_required, login_user, logout_user ) from flask_limiter import Limiter app = Flask(__name__) # flask-login app.secret_key = 'super secret string' login_manager = LoginManager() login_manager.init_app(app) # flask-limiter limiter = Limiter(app) # user class class User(UserMixin): def __init__(self, id): self.id = id self.username = id # memory storage users = [User('user')] @login_manager.user_loader def load_user(user_id): return users[0] @app.route('/') def index(): return 'Hello, World!' @app.route('/login') def login(): if not current_user.is_authenticated: login_user(users[0]) return redirect('/secured') @app.route('/logout') @login_required def logout(): logout_user() return redirect('/') @app.route('/secured') @login_required @limiter.limit("2 per day", key_func = lambda : current_user.username) def secured(): return f"Hello, {current_user.id}" if __name__ == '__main__': app.run()
我在recipes中找到了这个:
更新:添加简单示例
下面是一个简单的烧瓶应用程序,它实现了配方,为您提供了更好的想法:
相关问题 更多 >
编程相关推荐