ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

flask_sqlalchemy model序列化

2022-05-18 17:01:57  阅读:165  来源: 互联网

标签:name flask attribute self args column model 序列化


import datetime


class SerializrAbleMixin(object):
"""A SQLAlchemy mixin class that can serialize itself as a JSON object"""
# args 自定义序列化字段 is_except 序列化是否排除字段 is_hump 返回是否用驼峰命名
def to_dict(self, *args, is_except=False, is_hump=False):
"""
序列化
:param args: 自定义序列化字段
:param is_except: 序列化是否根据args排除字段
:param is_hump: 返回是否用驼峰命名
:return: dict
"""
value = dict()
for column in self.__table__.columns:
attribute = getattr(self, column.name)
if isinstance(attribute, datetime.datetime):
attribute = str(attribute)
if is_hump is True:
column_name = self.__hump(column.name)
else:
column_name = column.name
if not args:
value[column_name] = attribute
else:
if is_except is False:
if column.name in args:
value[column_name] = attribute
else:
if column.name not in args:
value[column_name] = attribute
return value

def from_dict(self, attributes):
"""Update the current instance base on attribute->value by *attributes*"""
for attribute in attributes:
setattr(self, attribute, attributes[attribute])
return self

def __hump(self, column_name):
column_list = column_name.split('_')
for key in range(len(column_list)):
if key != 0:
column_list[key] = column_list[key].capitalize()
return ''.join(column_list)
使用
class ClassName(db.Model, SerializrAbleMixin):

标签:name,flask,attribute,self,args,column,model,序列化
来源: https://www.cnblogs.com/yz-w/p/16285342.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有