flask-sqlalchemy 设置json字段
前提:
我们知道在mysql 5.7版本之后支持json字段,且在项目中存在业务需求不确定情况,如需求、配置变动频繁,导致表结构无法确定,所以采用json字段来存储不确定配置数据(当然这种情况下完全可以考虑一些非关系型数据库,如MongDB等)。
下面我们需要设计出一个演示的表结构,如下:

下面我们开始在flask项目中写ORM关系映射对象:
from app.extend import db # 插件中导出db
class TestJson(db.Model):
__tablename__ = 't_json'
id = db.Column(db.INT, primary_key=True)
content = db.Column(db.String(255))
jsons = db.Column(db.JSON)
@property
def serialize(self):
return {
'_id': self.id,
'name': self.content,
'jsons': self.jsons
}
其次我们在controller中实现简单的业务处理视图:
from flask import jsonify
from app.init_server import open_route_api
from app.module.jsonDemo.entity.jsonModel import TestJson
from app.extend import db
@open_route_api.route("/test/info", methods=['GET']) # 插入数据
def test_infos():
print("jsonDemo")
obj = TestJson()
dic = {
"a": 1,
"b": 'b'
}
obj.content = "text1"
obj.jsons = dic
db.session.add(obj)
db.session.commit()
return jsonify(dic)
@open_route_api.route("/test/get", methods=['GET']) # 查询数据
def get_infos():
print("getDemo")
obj = TestJson.query.filter_by(id=1).first()
print(obj)
return jsonify({'ok': obj.serialize})

浙公网安备 33010602011771号