|
19 | 19 | from models import RequestIp, SysLog
|
20 | 20 | from utils.custom_log import my_logger
|
21 | 21 | from utils.custom_exc import DuplicateRequests
|
| 22 | +from utils.handle_date import get_current_time |
22 | 23 | from utils.ip_utils import IPUtils
|
23 | 24 |
|
24 | 25 |
|
@@ -49,7 +50,7 @@ def prevent_duplicate_requests(request: Request):
|
49 | 50 | key = f"{request.client.host}+{request.get('path')}"
|
50 | 51 | try:
|
51 | 52 | request_obj = RequestIp.get(key)
|
52 |
| - if request_obj.num >= 5: |
| 53 | + if request_obj.num >= 10: |
53 | 54 | raise DuplicateRequests()
|
54 | 55 | else:
|
55 | 56 | RequestIp(num=request_obj.num + 1, pk=key).update()
|
@@ -82,11 +83,13 @@ async def get_request_params(request: Request) -> dict:
|
82 | 83 | async def save_log(request: Request, duration: float):
|
83 | 84 | """ 保存日志 """
|
84 | 85 | request_params = await get_request_params(request)
|
85 |
| - current_time = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") |
86 | 86 | sys_log = SysLog(url=request.get("path"), method=request.method, ip=IPUtils.get_ip(request), params=request_params,
|
87 |
| - spend_time=duration, create_time=current_time) |
| 87 | + spend_time=duration, create_time=get_current_time()) |
88 | 88 |
|
89 | 89 | my_logger.info(f"访问记录: {jsonable_encoder(sys_log)}.")
|
90 | 90 |
|
| 91 | + if request.get("path") == "/api/log/list": # 排除日志接口 |
| 92 | + return |
| 93 | + |
91 | 94 | with SessionLocal() as db:
|
92 | 95 | sys_log_crud.create(db, sys_log)
|
0 commit comments