Files
test/app/__pycache__/main.cpython-311.pyc
T

61 lines
8.9 KiB
Plaintext
Raw Normal View History

2026-09-21 19:03:31 +08:00
§
�ªjJã ór—dZddlmZddlZddlZddlZddlmZddlm Z ddl
m Z m Z ddl
mZddlmZdd lmZmZdd
lmZdd lmZmZee e¦« ¦«jj¦«Zeejvrej de¦«dd l m!Z!dd
l"m#Z#ddl$m%Z%m&Z&ddl'm(Z(ddl)m*Z*ej+ej,dd¬¦«ej-d¦«Z.e e¦«jdz Z/edAd„¦«Z0e e#j1e#j2›d�e#j3e0ddd¬¦«Z4e4 5edgddgdg¬ ¦«e4 6e(¦«dBd%„¦«Z7e4 6e¦«dCd'„¦«Z8e4 6e¦«dDd)„¦«Z9e4 6e¦«dEd+„¦«Z:e4 6e;¦«dFd-„¦«Z<e4 =d.¦«dGd/„¦«Z>e4 ?e!¦«e4 @d0d1gd2¬3¦«d4„¦«ZAe/ B¦«rKe4 Cd5eee/¦«¬6¦«d¬7¦«e4 @d8d9¬:¦«d;„¦«ZDeEd<krddlFZFeFjGd=d>d?d9¬@¦«dSdS)Hu]应用入å�£ã€‚
�动方�:
uvicorn app.main:app --reload # 开�
python -m app.main # 等价写法(会先自动建表)
接�文档:
http://127.0.0.1:8000/docs # Swagger UI
http://127.0.0.1:8000/redoc # ReDoc
http://127.0.0.1:8000/ # �端页�
é)Ú annotationsN)Úasynccontextmanager)ÚPath)ÚFastAPIÚRequest)ÚRequestValidationError)ÚCORSMiddleware)Ú FileResponseÚ JSONResponse)Ú StaticFiles)ÚIntegrityErrorÚSQLAlchemyError)Ú
api_router)Úsettings)ÚengineÚensure_database_exists)Ú
BusinessError)ÚBasez3%(asctime)s %(levelname)-7s %(name)s %(message)sz%H:%M:%S)ÚlevelÚformatÚdatefmtÚwolinÚstaticÚapprcóK—t¦«tj t¬¦«t
 dtj¦«t
 d¦«dWV—t j ¦«dS)N)Úbinduæ•°æ�®åº“就绪:%su)接å�£æ–‡æ¡£ï¼šhttp://127.0.0.1:8000/docs)
rrÚmetadataÚ
create_allrÚloggerÚinforÚDB_NAMEÚdispose)rs ú D:\xwt0803\wolin_sms\app\main.pyÚlifespanr$8suèè€åÑÔÐÝ„M×Ò¥&ÐÑ)Ô)Ð)Ý
‡K‚KÐ&­Ô(8Ñ9Ô9Ð9Ý
‡K‚KÐ;Ñ<Ô<Ð<Ø €E€E€E€EÝ
„NÑÔÐÐÐóu
**统一�应格�**:`{code, msg, data}`,`code=0` 表示�功。
**鉴�**:除 `/auth/login` 外都需�在请求头带 `Authorization: Bearer <token>`。
**分层**:api(路由)/ service(业务)/ dao(数�访问)/ model(ORM)/ schema(校验)。z/docsz/redocz
/openapi.json)ÚtitleÚ descriptionÚversionr$Údocs_urlÚ redoc_urlÚ openapi_urlÚ*T)Ú
allow_originsÚallow_credentialsÚ
allow_methodsÚ
allow_headersÚrequestrÚexcrcƒóNK—td|j|j|jdœ¬¦«S)NéÈ©ÚcodeÚmsgÚdata©Ú status_codeÚcontent)r r6r7r8©r1r2s r#Úbusiness_error_handlerr=[s+èè€å  C¸#¼(È3Ì7Ð\_Ô\dÐ1eÐ1eÐ fÑ fÔ fÐfr%rcƒóRK—g}| ¦«D]b}d d„| dg¦«D¦«¦«}| |›d| d¦«›�¦«Œct dddd  |¦«zd
|id œ¬ ¦«S)
u@把 Pydantic 的报错翻译æˆ�人è¯�,å‰�端å�¯ä»¥ç›´æŽ¥å¼¹ã€‚u → c3ó@K—|]}|dk¯t|¦«V—ŒdS)ÚbodyN)Ústr)Ú.0Úxs r#ú <genexpr>z+validation_error_handler.<locals>.<genexpr>es,èè€ÐTÐT¨1ÈÈVÊ È ¥ A¡¤È È È È ÐTÐTr%Úlocz: r7r4i¦uå�‚数校验未通过:uï¼›Úerrorsr5r9)rFÚjoinÚgetÚappendr )r1r2ÚproblemsÚerrorÚlocations r#Úvalidation_error_handlerrM`sÁèè€ð€HØ—’‘”ð;ð;ˆØ—<’<ÐTÐT°· ² ¸%ÀÑ0DÔ0DÐTÑTÔTÑTÔTˆØ�Š˜8Ð9Ð9 u§y¢y°Ñ'7Ô'7Ð9Ð9Ñ:Ô:Ð:Ð:Ý ØØÐ%?À%Ç*Â*ÈXÑBVÔBVÑ%VÐaiÐksÐ`tÐuÐuð ñ ô ðr%r
cƒófK—t d|¦«tdddddœ¬¦«S)Nuæ•°æ�®åº“约æ�Ÿå†²çª�:%sr4i™u3æ•°æ�®å†²çª�(唯一键é‡�å¤�或外键ä¸�å�ˆæ³•)r5r9)rÚwarningr r<s r#Úintegrity_error_handlerrPmsPèè€å
‡N‚NÐ/°Ñ5Ô5Ð5Ý  C¸#ÐF{ðFJð2Kð2Kð Lñ Lô LðLr%rcƒójK—t d¦«tddd|›�ddœ¬¦«S)Nuæ•°æ�®åº“错误r4éôuæ•°æ�®åº“æ“�作失败:r5r9)rÚ exceptionr r<s r#Úsqlalchemy_error_handlerrTssCèè€å
×ÒÐ&Ñ'Ô'Ð'Ý  C¸#ÐFfÐadÐFfÐFfÐptÐ1uÐ1uÐ vÑ vÔ vÐvr%Ú ExceptioncƒóŒK—t d|j|jj¦«t ddd|›�ddœ¬¦«S)Nu未处ç�†å¼‚常:%s %sr4rRuæœ�务器内部错误:r5r9)rrSÚmethodÚurlÚpathr r<s r#Úunhandled_error_handlerrZysNèè€å
×ÒÐ.°´ÀÄ Ô@PÑQÔQÐQÝ  C¸#ÐFfÐadÐFfÐFfÐptÐ1uÐ1uÐ vÑ vÔ vÐvr%Úhttpcƒó˜K—tj¦«}||¦«ƒd{V—†}tj¦«|z
dzd›|jd<|S)Nièz.1fzX-Process-Time-ms)ÚtimeÚ perf_counterÚheaders)r1Ú call_nextÚstartÚresponses r#Úadd_process_timerc€saèè€å Ô Ñ Ô €EØ�Y˜wÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'€HÝ04Ô0AÑ0CÔ0CÀeÑ0KÈtÑ/SÐ,YÐ,Y€HÔÐ(Ñ)Ø €Or%z /api/healthu系统u å�¥åº·æ£€æŸ¥)ÚtagsÚsummarycóˆ—ddtjtjtjtjjtjdœdœS)NrÚok)rr(ÚdatabaseÚdialectÚ auth_enabledr5)rÚAPP_NAMEÚVERSIONr!rriÚnameÚ AUTH_ENABLED©r%r#ÚhealthrpŒsC€ðØåÔ$ÝÔ'Ý Ô(Ý”~Ô*Ý$Ô1ð 
ð
ð
ð
ð
r%z/static)Ú directory)rmú/F)Úinclude_in_schemacóJ—tttdz ¦«¦«S)Nz
index.html)r
rAÚ
STATIC_DIRror%r#ÚindexrvŸs€å�C¥
¨\Ñ 9Ñ:Ô:Ñ;Ô;Ð;r%Ú__main__z app.main:appz 127.0.0.1i@)ÚhostÚportÚreload)rr)r1rr2r)r1rr2r)r1rr2r
)r1rr2r)r1rr2rU)r1r)HÚ__doc__Ú
__future__rÚloggingÚsysr]Ú
contextlibrÚpathlibrÚfastapirrÚfastapi.exceptionsrÚfastapi.middleware.corsr Úfastapi.responsesr
r Úfastapi.staticfilesr Úsqlalchemy.excr
rrAÚ__file__ÚresolveÚparentÚ_ROOTrYÚinsertÚapp.apirÚapp.core.configrÚapp.core.databaserrÚapp.core.exceptionsrÚ app.modelrÚ basicConfigÚINFOÚ getLoggerrrur$rkÚAPP_DESCrlrÚadd_middlewareÚexception_handlerr=rMrPrTrUrZÚ
middlewarercÚinclude_routerrHrpÚexistsÚmountrvÚ__name__ÚuvicornÚrunror%r#ú<module>ržs›ðð
ð
ð#Ð"Ð"Ð"Ð"Ð"à€€€Ø
€
€