前提:
我們知道在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})