前言
搜索发现 提供的 代码都不能实现
以下 是我的环境
Python 3.10.14
Flask 3.0.3
Werkzeug 3.0.3
解析
Flask 的 Json 方法是由
flask.json.provider.DefaultJSONProvider 代理实现
调用 flask.json.provider._default 做具体的格式化
思路:
掩盖原方法 指向 自定义方法
实现
myJsonEncoder.py
from datetime import datetime, date
from flask.json.provider import DefaultJSONProvider, _default as flask_json_defaultimport typing as tdef _default(o: t.Any) -> t.Any:if isinstance(o, datetime):return o.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(o, date):return o.strftime('%Y-%m-%d')return flask_json_default(o)class MyJSONProvider(DefaultJSONProvider):default: t.Callable[[t.Any], t.Any] = staticmethod(_default)
flask -> app.py
!!!记得放 create_app 之前
from module import myJsonEncoderflask.Flask.json_provider_class = myJsonEncoder.MyJSONProvider# web_app = create_app(__name__)
以上!!!!