feat:重新初始化

This commit is contained in:
2025-09-23 15:13:29 +08:00
parent de43a551bc
commit 842da15886
31 changed files with 2500 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
import re
from fastapi import Request
from models.blog import BlogVisit
from service import blog_service
from utils.blog_utils import get_user_agent_info, get_client_ip
from config.database import SessionLocal
from middleware.exceptions import AppException
async def blog_visit_middleware(request: Request, call_next):
# 检查路径是否匹配 /blog/content/{blog_id}
if match := re.match(r"^/blog/content/(\d+)$", request.url.path):
# 获取客户端信息
ip = get_client_ip(request)
user_agent = request.headers.get("User-Agent", "")
os, browser = get_user_agent_info(user_agent)
blog_id = int(match.group(1))
# 创建访问记录
blog_visit = BlogVisit(
ip=ip,
os=os,
browser=browser,
uri=request.url.path,
blog_id=blog_id
)
db = SessionLocal()
try:
blog_service.add_blog_visit(db, blog_visit)
db.commit()
except Exception as e:
db.rollback()
raise AppException(f"新增博客{blog_id}访问记录失败: {e}")
finally:
db.close()
# 继续处理请求
response = await call_next(request)
return response