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})

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM