当前位置: 首页 > 后端技术 > Python

pydantic字段的默认值设置获取当前时间

时间:2023-03-26 16:01:55 Python

濡備綍璁剧疆pydantic瀛楁鐨勯粯璁ゅ€兼潵鑾峰彇褰撳墠鏃堕棿锛燄煈忓湪杩欑鎯呭喌涓嬶紝涓嶈浣跨敤default锛岃€屾槸浣跨敤default_factory銆備袱鑰呯殑鍖哄埆濡備笅::paramdefault:鐢变簬杩欐槸鏇挎崲瀛楁鐨勯粯璁ゅ€硷紝鎵€浠ュ畠鐨勭涓€涓弬鏁扮敤浜庤缃粯璁ゅ€硷紝浣跨敤鐪佺暐鍙?``...``)琛ㄧず璇ュ瓧娈垫槸蹇呴渶鐨勶細paramdefault_factory锛氬綋姝ゅ瓧娈甸渶瑕侀粯璁ゅ€兼椂灏嗚皟鐢ㄧ殑鍙皟鐢ㄥ嚱鏁板鏋滃悓鏃惰缃簡鈥渄efault鈥濆拰鈥渄efault_factory鈥濓紝鍒欎細寮曞彂閿欒銆傗潓鎴戜滑鏉ョ湅閿欒鐨勪緥瀛愶紝鍗抽粯璁よ幏鍙栧綋鍓嶆椂闂达細鏇挎崲锛坱zinfo=timezone.utc锛塩lassStruct锛圔aseModel锛夛細releaseDate锛氬彲閫塠datetime]=Field锛坉efault=get_utc_now_timestamp锛堬級锛夋墦鍗帮紙Struct锛堬級銆俽eleaseDate锛塼ime.sleep锛?锛夋墦鍗帮紙Struct锛堬級銆俽eleaseDate)鍙互鐪嬪嚭涓ゆ鏄竴鏍风殑锛屼笉鏄兂瑕佺殑缁撴灉锛?022-01-2714:16:23.876755+00:002022-01-2714:16:23.876755+00:00鉁呰鎴戜滑鐪嬬湅default_factory:fromdatetimeimportdatetime,timezonefrompydanticimportBaseModel,FieldfromtypingimportOptionalimporttimedefget_utc_now_timestamp()->鏃ユ湡鏃堕棿锛氳繑鍥瀌atetime.utcnow().replace(tzinfo=timezone.utc)classStruct(BaseModel):releaseDate:Optional[datetime]=Field(default_factory=get_utc_now_timestamp)print(Struct().releaseDate)time.sleep(1)print(Struct().releaseDate)鍙互鐪嬪埌涓や釜鏃堕棿闂撮殧1绉掞紝灏辨槸鎯宠鐨勭粨鏋溾潳锔?022-01-2714:15:55.195409+00:002022-01-2714:15:56.200775+00:00