From 6977463918a8caff0c4a6f67da199471ce1db2ed Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Tue, 23 Sep 2025 15:01:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 68 +++++++++++++++ api/__init__.py | 5 +- api/__pycache__/__init__.cpython-310.pyc | Bin 403 -> 463 bytes api/__pycache__/blog.cpython-310.pyc | Bin 3565 -> 3651 bytes api/blog.py | 7 +- api/session.py | 18 ++++ config/__pycache__/auth.cpython-310.pyc | Bin 2203 -> 2220 bytes requirements.txt | 2 +- schemas/session.py | 6 ++ service/session_service.py | 23 +++++ sys.stdout | 104 +++++++++++++++++++++++ 11 files changed, 227 insertions(+), 6 deletions(-) create mode 100644 .gitignore create mode 100644 api/session.py create mode 100644 schemas/session.py create mode 100644 service/session_service.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ddac70 --- /dev/null +++ b/.gitignore @@ -0,0 +1,68 @@ +# Python 字节码文件 +__pycache__/ +*.py[cod] +*$py.class + +# C 扩展 +*.so + +# 分发/打包 +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# 虚拟环境 +venv/ +env/ +ENV/ +.env +.venv + +# 测试 +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Django 相关 +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal +media/ + +# PyCharm IDE +.idea/ +*.iml +*.iws +*.ipr + +# VS Code +.vscode/ +*.code-workspace +.history/ + +# 其他 +.DS_Store + +logs/ +packages/ \ No newline at end of file diff --git a/api/__init__.py b/api/__init__.py index 30db9b3..70bac50 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -1,6 +1,7 @@ from fastapi import FastAPI from .blog import router as blog_router - +from .session import router as session_router def register_routers(app: FastAPI): - app.include_router(blog_router, prefix="") \ No newline at end of file + app.include_router(blog_router, prefix="") + app.include_router(session_router, prefix="") diff --git a/api/__pycache__/__init__.cpython-310.pyc b/api/__pycache__/__init__.cpython-310.pyc index 3d6dcfcb32bb82a40afaccfa7bddf39fdc478d5f..51d8d64c996f54dab2d606e41bf70314a22b1a78 100644 GIT binary patch delta 256 zcmbQte4d#%pO=@50SLC3Uds4Ckyn<{Y@)V|BvT4=4r?xR6dNN$3QH7k{X6A zh7!h!dt?}yCf=0g)?_SV1&Xd@DB_wd$mqw%1mp-Y7V!WnKTWpD`HXT#U``Rpd?bP! c$i2m3lbfGXnv-hB2;>#B0SO)k9!4Q%0Oyk%5&!@I diff --git a/api/__pycache__/blog.cpython-310.pyc b/api/__pycache__/blog.cpython-310.pyc index f466a07d22159767bb99afd27ee8279d77b7e828..5f6706b12134cc7dee10034dc037363a47bfc678 100644 GIT binary patch literal 3651 zcmbtWNpBq25$@O1v$8oPhoneai>Y0sg(ExiCd;xUDqdnmp+zKzhJe9v>T%Rg_w@L6 zk04HzgCR$84ulhALsp4Ga^Qt>fFwYo1o{s-_BG~q_ANlHR8{wo!y$Pv(u4QrRdp@j ztEyM8z24rOhR?an|GM>$yr%t|h|VXA#3dYlA)#rYfp9ceSVGWRcXT&lC0xTY+@zIs zQ&x)k2`BAltPHOWC+p^{9Ium3k84_{+iUf@c`NVsS$%H5)$a~i18%`8xP#W9J7f*H z!`3j%r<^_Rh&96Nv@`0CS!2A;IM2Czt-V5%3CKdOCZGpQ=(U9{AU~h5_Q`!8?1w(+ zmm|^~(_mmeA(K$R-yjUZ@VtT49;8NK6vp7W`J^=D*gY|ufW7hn?8C8NW@b}x0G|Ii zc~4l+v%PURD8+_72OH)vW5YN;RtJtv&K<4CQbGp*%xp;wr#)(D6-^1lsp6{ z;gmeQDT$VIh)0LhawxWZ1}0ek2+ALY5}e&pp6s8N!!iCB;6>IshC0Vl=WDy_(0&a# z2QRVw2}b`iyn_49$MI|LfFyNz6<%Y>B1@i!*Ja-(`dPvLb+`a;u+&MGx(IJ#J_i4f zd|ZOdZ0{7?y8@H)wCvvz-&OcJOP)c=qwp5I-MMqb_l_KZcV#M$(>LHfmY!g{*WjCI zx6oyGGjrGBTP$6IscEhF{yLqOq6m#^wjUIYFnf9G-5XvrkSa`Hl?_=3KTN*glxi+a z-;f_RB}$1fJuQ9T_UgDaZ%bv*&Xoi2yRu%)h2|Bju;%n}u;57Bb663CjT z<~9Tdh&vrr0)K;5Al5Y$^n(o^i%oj2E9=3elK3(lWP1^7tK4^N-`-Tsv0S9X>u)yz z^$~h*s#24v+H`17shSMRFhg6KK>%f6s@rx|wvr_xnqBp%GMSewbBpM0~W@K)1~T+56=F`odpU z9{h3b@uSFgQ4iC8({(Et?|fUQ?0O)bb@ZoMJ=LaC7zBbIVfyD!mwz;mW>z15gl_ek z43ibduJ~#X%CA# z%+g%;Q9aaQri$HkL?OhLekUZE)YR6qG)X3Q7@A?m0?HTUP1B{j;O$NMRa_MAFluE4_k21 zk!U}(-aQ`JKpYv!c1Sj}vJ-^Y&=jR33JOuJY^fTz)a~{1$^F$oJ*iULXg{a1TjtS*p9SAs4gk5%8Gmqa0s+jJLf!?CvXbp4l0F^=wJ?OrsUIM}c{ zu>+1bkw-&OwJ2J((j|xQvyL3CJ^jhbZy!We^A$od(2<$Q=8mzrgkIkw_Z$nNS{ZCH ze1C2`%4?55UR(NmeC@?TVOmAE{kF5+4v*i_>ZvzktKXWm_DL_tCh^2yCP-IkqGR8k zK&s03i2o{0L~&na(A{Uhqc2AAzd}3gyoO?I>IHJyRZv%vH${BzK}20Io()sMT*I!{ z6t(X#JzK$oY}ks5NYOD@6d#qs$;$g5Iu)mSOS*Fto^n;1m_69&XYJZVr5W5(8RD2e ziB$XvYNaYm>U1Dr0F^gGZ*mdrs>Fw)SLV|PNp`ho5Ix3;=q5Q z>$)&RPNe=@NasbrNQumsy3n8Ly7^@xWf1*L7v{5ka-YZ>hj1L@|AH}!|D&Q{Y}cYU J%1QRdgh)^3S3pqtg~L*4=7`GZ&%H) zs()QwT|KULc4jqv?(F&L(y5%L{fC6sCxgN{!rsRI zo`yjwR{WXQwAf0A?XrU{OxOWKZ1EIZ?1Wu1%doSFat9)ZU>HW)kmPf}?2S1ef@c`L6Vba6{p>nuTAc~c!SjsV&0JrA7jbn~ z9IYl_LhA4myv)cwjC=(S%g$9?Bh;&Kgi(7L^%@+-==c1J=)Vrf*k6JD9fuQgpUkbx zZxl{4az7%6;1v9(ZOw1UE_hQW;|RS4rx|^K{k{!n&~JB}-(U9W9XQMAgK%z4E1X}Z z^H30>dB*XBf*EFxpMUE@wH`)YMet2D94!X2TvbymfF9D01;xN$QRPW>27!LCqGQ--)$?Q}7*!Hq zhP~`BQmw}Q&hedJOtXxOY4watsz;K!8lCd$eKU`CHIkf;6-^iS;27{B;dIbtbn5-!|>0AlT zpjh_9jEW=TqrVzXThEifkFGDze7kVtUrV=dMZODqnDXnMSH$?{nl|HJ6{Ne2^J#WR zsjd_Tfv88Ee*Ap?<7srWc=H3CRxisiQFNW6ulf+bOa*Tl$TCgSjya9UY~l7NH1%J; zS^m=}1ygNBM5wz`ZNmXuhE_b&IN606>c@RF4|SL*83=1WG)`a}#r6QpsupNB#Z~>P zc2&$6W7@1ZThP@e)Q5S@7d17`;hmUb$Fqjoj<3`X>V~kJ)zn`6`QPx#!xu-dT)Fs$ z6TDfUIIpUgWhwA4lI_8GYc3XR4l9OhQ))LF^tuZ)W3Q`E0f{-{Rra)@p7WBK)Qq2 zZNcW#G?u|~BTqyF+}Dxcb95Z|LqxbGH|DSZaenUmFckwfq^u6mG_5qdSJQN0R#(FW zqJX#a8$sP5HV&kvE0RMkV)NH;=5Ku+WopdEBsPyhC0zvI1i%nIho0A^@I1aC{^}X( zNWz_L3(Ob)UO+Z{AR{Up=A_z5URvYPQRfm6@i3xLY)Iw>wBCm;N-SNG9G~8s%YXmp zDheBA(b_G+!r{t5G6i*r2vXL!q{&MtQs|=?kkrVGl;ZNaHa9-HzIf+uiAqHCp|OFD zvzW>NXR$UT+H$zJB{`b@XT`ev@(OyP-QZAUbwzR`IpS0Kt`DHlda@Sp-dLKOxqokF z;e*>75>qdu)vCQ|%~f`+4ils;I!91Pv#VFBBMEuDPj!C{kEOYL%YU1Tc~C%_4~-Mp zC_rm-q?HFdR(lB7#^W{A9VI#iwa?P<_y8YqO+z;^;7lXo-if-}^kC5L|)~OC+Szo1<&* zOa@amr&3mQuEW%15fifJC`uef7lfkpQAzCVod2F%bW4|{H#J;Uo=TC@@<~zjhp9-a zG=b?~3`M6=bx=pQi|V9~BCNWo>!z*;J3HUB$II8L6zLjM^xa^0;cYSLl!x&{rZ`c= z>yU0fI~CuH(Pf)d(Px{1-!-A(R06&d`MQZ}x>>9GL1<1?t1j2r(5Te|E^lEns!oc^ z4xe&9Vw~Th>Ef56;-sf-QxvO~-Q|6zi!Mwb!S9y3E00no@?GpKZ9uogA>G2>61uJn zQ)ET*=X@$BxGXr0dqhe9|QOkuI!9xx`kHGpP;oZ{8fh-vN;~*ILn=L3}eP F{tqU-q4)p* diff --git a/api/blog.py b/api/blog.py index 4cd2917..12449ff 100644 --- a/api/blog.py +++ b/api/blog.py @@ -3,6 +3,7 @@ from typing import List from fastapi import APIRouter, Depends, Query, Request from sqlalchemy.orm import Session +from config.auth import verify_token from schemas.blog import BlogResponse, BlogQuery, BlogCategoryResponse, BlogStatsResponse, \ BlogLatestResponse, BlogCommentCreate, BlogCommentResponse, BlogVisitResponse, BlogCreate, BlogUpdate from schemas.pagination import PageResult @@ -35,17 +36,17 @@ def query_blog_by_id(blog_id: int, db: Session = Depends(get_db)): @router.post("", summary="新增博客内容", response_model=bool) -def add_blog(blog: BlogCreate, db: Session = Depends(get_db)): +def add_blog(blog: BlogCreate, db: Session = Depends(get_db), _ = Depends(verify_token)): return blog_service.add_blog(db, blog) @router.put("/{blog_id}", summary="更新博客内容", response_model=bool) -def update_blog(blog_id: int, blog: BlogUpdate, db: Session = Depends(get_db)): +def update_blog(blog_id: int, blog: BlogUpdate, db: Session = Depends(get_db), _ = Depends(verify_token)): return blog_service.update_blog(db, blog_id, blog) @router.delete("/{blog_id}", summary="删除博客内容", response_model=bool) -def delete_blog(blog_id: int, db: Session = Depends(get_db)): +def delete_blog(blog_id: int, db: Session = Depends(get_db), _ = Depends(verify_token)): return blog_service.delete_blog(db, blog_id) diff --git a/api/session.py b/api/session.py new file mode 100644 index 0000000..1a459ca --- /dev/null +++ b/api/session.py @@ -0,0 +1,18 @@ +from fastapi import APIRouter, Depends +from fastapi.security import OAuth2PasswordRequestForm +from sqlalchemy.orm import Session + +from config.database import get_db +from schemas.session import SessionResponse +from service import session_service + +router = APIRouter( + prefix="/session", + tags=["会话"], + responses={404: {"description": "Not found"}} +) + + +@router.post("", summary="创建会话", response_model=SessionResponse) +def create(form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)): + return session_service.create(db, form_data.username, form_data.password) diff --git a/config/__pycache__/auth.cpython-310.pyc b/config/__pycache__/auth.cpython-310.pyc index 264e224075fba5c97fea2cca5be7fb982b983e66..022e18a3bc61c2e8035ae16569c2add463ffb199 100644 GIT binary patch delta 402 zcmYL^%Sr<=6ozv$X=d7Su&uP4YH#DFwYF5jx)3jW>Bfa9f@r7oLUl?S5M_#&u62{8 z8{H|m5jQ@EqKkP0A3`*lf+q0s=g&F$Pi|vRG0U~A2$Jh%^{rifw$?T9MO|Bil(^9t zqy>;gYewF)gv2ATjMyM$$ca8FntwjaN_R@Uk_64GT3fu6Z<Wp;F z(|JH@kE>5m0oMz#8#(B;T-M?3qd{T95A|8+n6r|MPW#kpHe9F4%4)KTLQWy9V2cl0 zF&C5!2A>SRl-J|aN$KGW3K9`q&i|IwoO(wFB_vdt$> ar@>h|kcY0@8wc7drK(Uy|JBUH=) delta 377 zcmZ1@I9rf6pO=@50SFY|U&xT&$m_t&7&Y0C*`85qavyUMqwHix7Gqu+pnQ=ikXXrB zBsbZSMUPQoasi7LCtQ58J&Wk%9W0`3iXfFrlP|OUWs?Ijl_y_g^g3Ggs?=m;0KpR0$qU&eRJe<@fd=1VOG!=6Pf0D(1zD>HA{0ObCx}p* z{De)P+YrPAyNVy^2Votavecr?w95FB{Or^`51?eR2#{cEU}6+v;$UK9 SessionResponse: + # 1. 校验账户是否存在 + if username != "admin": + raise AppException(f"该账户{username}不存在") + + # 2. 校验密码是否正确 + if password != "19940822Cxx": + raise AppException("密码错误") + + return SessionResponse( + access_token=create_token(create_payload(username)), + token_type="Bearer" + ) + + + diff --git a/sys.stdout b/sys.stdout index abc25c4..18fd478 100644 --- a/sys.stdout +++ b/sys.stdout @@ -710,3 +710,107 @@ 2025-09-22 19:35:46.701 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} 2025-09-22 19:36:39.565 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 2025-09-22 19:36:39.565 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 13:38:24.061 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/ +2025-09-23 13:38:24.072 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 404 +2025-09-23 13:38:24.176 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/favicon.ico +2025-09-23 13:38:24.176 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 404 +2025-09-23 13:38:28.402 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:38:50.471 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:38:51.104 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:38:55.964 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 13:38:55.964 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 13:38:55.964 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 13:40:23.368 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 13:40:23.369 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 13:40:32.054 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/blog +2025-09-23 13:40:32.056 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 13:46:14.026 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:46:14.554 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:46:19.941 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:46:20.022 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:46:24.491 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:46:24.553 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:49:32.889 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:49:32.991 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:52:53.666 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:52:53.766 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:53:00.113 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/docs +2025-09-23 13:53:00.173 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/openapi.json +2025-09-23 13:57:51.959 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 13:57:51.960 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 13:57:56.317 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 13:57:56.422 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 13:57:57.914 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 13:57:58.014 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 13:57:58.014 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 13:57:58.028 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/stats +2025-09-23 13:57:58.044 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/latest +2025-09-23 13:57:58.074 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 13:57:58.074 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 13:58:39.770 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 13:58:39.785 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 13:58:41.260 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 13:58:41.262 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 14:02:37.558 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session?name=estun&password=medical +2025-09-23 14:02:37.558 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'name': 'estun', 'password': 'medical'} +2025-09-23 14:02:37.560 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 422 +2025-09-23 14:03:42.464 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:03:42.466 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 422 +2025-09-23 14:06:05.092 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:06:05.095 | ERROR  | middleware.exceptions:global_exception_handler:32 - 业务异常: 该账户estun不存在 - 详情: None +2025-09-23 14:07:04.464 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:07:04.467 | ERROR  | middleware.exceptions:global_exception_handler:32 - 业务异常: 该账户admin不存在 - 详情: None +2025-09-23 14:07:53.591 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:07:53.596 | ERROR  | middleware.exceptions:global_exception_handler:32 - 业务异常: 该账户admin不存在 - 详情: None +2025-09-23 14:08:48.398 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:26:31.145 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:26:56.041 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:26:57.633 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:26:57.633 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:26:59.248 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 14:26:59.333 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 14:27:00.498 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 14:27:00.500 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 14:31:33.983 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:31:35.668 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:31:35.668 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:31:37.840 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 14:31:37.897 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 14:31:39.290 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 14:31:39.291 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 14:37:39.603 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:37:41.438 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:37:41.438 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:37:51.897 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 14:37:51.970 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 14:37:53.706 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 14:37:53.708 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 14:38:31.930 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:38:33.214 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:38:33.214 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:38:34.724 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 14:38:34.779 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 14:38:35.684 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 14:38:35.686 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 14:40:02.522 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 14:40:02.524 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401 +2025-09-23 14:40:12.792 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 14:40:12.816 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 14:40:24.342 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: POST http://127.0.0.1:8082/session +2025-09-23 14:40:25.690 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:40:25.691 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:40:26.966 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/content/631305371107398 +2025-09-23 14:40:27.033 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/comment/0 +2025-09-23 14:40:28.104 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/631305371107398 +2025-09-23 14:40:28.201 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:40:28.201 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:40:28.215 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/stats +2025-09-23 14:40:28.230 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/latest +2025-09-23 14:40:28.263 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:40:28.263 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:41:06.532 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:41:06.533 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:41:58.649 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10 +2025-09-23 14:41:58.649 | INFO  | middleware.exceptions:global_exception_handler:20 - 查询参数: {'currentPage': '1', 'pageSize': '10'} +2025-09-23 14:42:06.096 | INFO  | middleware.exceptions:global_exception_handler:18 - 请求: PUT http://127.0.0.1:8082/blog/21312 +2025-09-23 14:42:06.098 | WARNING  | middleware.exceptions:global_exception_handler:26 - 响应: 401