From c4ad386b9f9009be67a5e92457a34078487d97a2 Mon Sep 17 00:00:00 2001 From: canglan Date: Wed, 1 Apr 2026 16:22:44 +0800 Subject: [PATCH] =?UTF-8?q?v1.0.0=E5=90=8E=E7=AB=AF=E6=9C=80=E7=BB=88?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/middleware/rate_limit.py | 4 ++-- requirements.txt | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/middleware/rate_limit.py b/backend/middleware/rate_limit.py index 0c79bba..63c6bf9 100644 --- a/backend/middleware/rate_limit.py +++ b/backend/middleware/rate_limit.py @@ -11,7 +11,6 @@ from fastapi import Request, HTTPException from slowapi import Limiter, _rate_limit_exceeded_handler from slowapi.util import get_remote_address from slowapi.errors import RateLimitExceeded -from slowapi.extension import RateLimitDecorator from ..config import settings # 创建限流器 @@ -24,11 +23,12 @@ def setup_rate_limit(app): app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler) def rate_limit(requests: int = None, period: int = None): - """限流装饰器工厂 - 修复版本""" + """限流装饰器工厂""" if not settings.RATE_LIMIT_ENABLED: return lambda func: func req = requests or settings.RATE_LIMIT_REQUESTS per = period or settings.RATE_LIMIT_PERIOD + # 直接返回 slowapi 的限流装饰器 return limiter.limit(f"{req}/{per} seconds") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 65d4c0e..a872ed2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,4 +14,5 @@ python-jose[cryptography]==3.3.0 passlib[bcrypt]==1.7.4 aiosmtplib==2.0.2 tencentcloud-sdk-python==3.0.1000 -pycryptodome==3.20.0 \ No newline at end of file +pycryptodome==3.20.0 +httpx==0.25.1 \ No newline at end of file