sqlalchemy 查询结果转json个人解决方案
参考了网上很多资料,自己搞了一个适合的
在model 内增加一个函数:
class User(db.Model):
__tablename__ = 'user' userid = db.Column(INTEGER(11), primary_key=True, comment='用户ID')
phone_title = db.Column(CHAR(10), comment='电话抬头')
phone = db.Column(INTEGER(50), comment='用户电话')
account = db.Column(db.String(255), primary_key=True,
comment='用户账户,备注:用户可以使用其他方式登录,但是在系统必须拥有自己的账户')
email = db.Column(db.String(255), comment='用户邮箱')
name = db.Column(CHAR(60), comment='用户名称')
password = db.Column(db.String(255))
token = db.Column(VARCHAR(255), comment='用户登录验证')
pre = db.Column(db.String(255), comment='用户个人介绍')
c_time = db.Column(DateTime, comment='用户创建时间')
photo = db.Column(db.String(255), comment='用户头像保存路径')
login_time = db.Column(DateTime, comment='用户最后登录时间')
status = db.Column(INTEGER(
1), comment='账户状态:\\r\\n0、正常\\r\\n1、冻结\\r\\n2、过期\\r\\n3、未激活(未分配团队)\\r\\n')
type = db.Column(db.String(255), comment='用户类型:0、app用户 1、后台用户 2、第三方用户')
accountType = db.Column(INTEGER(11), comment='用户类型2:0、超级管理员 1、后台用户 2、普通用户') def to_json(self): # ---------------------
dict = self.__dict__
if "_sa_instance_state" in dict:
del dict["_sa_instance_state"]
return dict
接口调用:
from app.model import User
from app import db, js_ret
from flask import Blueprint, request, make_response, Response, render_template, url_for, current_app as lg
session = db.session users = Blueprint('users', __name__, url_prefix='/users') @users.route('/', methods=['POST', 'get'])
def us():
"""
查询用户列表
type:查询用户类型
page_number:每页条数
page_index : 页码
token:操作人token
c_time:操作时间 """
page_number = request.form.get('page')
page_index = request.form.get('page_index') user_list = User.query.paginate(1,2,False)
de = []
for i in user_list.items:
de.append(i.to_json()) return js_ret(0,'',de)
然后使用jsonify 方法转换一下格式:
from flask import jsonify def js_ret(code = None,msg = None,data = None):
"""
return json 返回参数处理
code :状态码
data:返回结果
"""
rt_data = {
"code":code,
"msg":msg,
"data":data }
jss = jsonify(rt_data)
return make_response(jss,200)
还有就是日期格式的问题,jsonify 转换的日期格式默认是 http格式,我是直接改了一下源码使用,不推荐使用这种方式,

如果不想使用jsonify的话,直接定义一个函数,对json.dumps方法传参就好,两种方式并没有太大的区别:
区别:https://blog.csdn.net/kun1280437633/article/details/80377734
def json_serial(obj):
# 处理日期格式问题
"""JSON serializer for objects not serializable by default json code""" if isinstance(obj, (datetime, date)):
if isinstance(obj,datetime):
return obj.strftime("%Y-%m-%d %H:%M:%S")
else:
return obj.soformat()
raise TypeError ("Type %s not serializable" % type(obj))
# print (dumps(datetime.now(), default=json_serial))
def js_ret(code = None,msg = None,data = None):
"""
return json 返回参数处理
code :状态码
data:返回结果
"""
rt_data = {
"code":code,
"msg":msg,
"data":data }
jss = jsonify(rt_data)
return make_response(jss,200)
其他方案:
https://blog.csdn.net/liu_xing_hui/article/details/8956107
https://www.cnblogs.com/eating-gourd/p/9997751.html
时间戳转换:https://www.cnblogs.com/hanbowen/p/10062111.html
sqlalchemy 查询结果转json个人解决方案的更多相关文章
- 有关 Table 获取Json 的解决方案
目录 写在前面 具体操作步骤 写在前面 在项目的开发过程中,我们使用最多的是表单的序列化.而有关以Table的序列化成Json的方法不太常见. 在做功能的时候发现,没有提交如何把Table序列化成Js ...
- 把SQLAlchemy查询对象转换成字典
1-假设查出来的为单个对象 1-1 在model.py中为模型对象添加字典转换函数: from exts import db class User(db.Model): __tablename__ = ...
- 使用TSQL查询和更新 JSON 数据
JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...
- Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据
Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段 ...
- Atitit.列表页and查询条件的最佳实践(1)------设定搜索条件and提交查询and返回json数据
Atitit.列表页and查询条件的最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段显示类 ...
- 自定义mysql类用于快速执行数据库查询以及将查询结果转为json文件
由于每次连接数据库进行查询比较麻烦,偶尔还需要将查询结果转为json格式的文件, 因此暂时定义一个mysql的类,将这些常用的方法进行封装,便于直接调用(代码如下,个人用,没写什么注释). 注:导入了 ...
- SQL Server中将查询结果转换为Json格式脚本
这篇文章主要介绍了SQL Server中将查询结果转换为Json格式脚本分享,本文直接给出实现代码,需要的朋友可以参考下 原文地址:http://www.jb51.net/article/61462. ...
- python测试开发django-15.查询结果转json(serializers)
前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse ...
- tornado 07 数据库—ORM—SQLAlchemy—查询
tornado 07 数据库—ORM—SQLAlchemy—查询 引言 #上节课使用query从数据库查询到了结果,但是query返回的对象是直接可用的吗 #在query.py内输入一下内容 from ...
随机推荐
- [源码解析] 深度学习流水线并行GPipe (2) ----- 梯度累积
[源码解析] 深度学习流水线并行GPipe (2) ----- 梯度累积 目录 [源码解析] 深度学习流水线并行GPipe (2) ----- 梯度累积 0x00 摘要 0x01 概述 1.1 前文回 ...
- [转]C# 互操作性入门系列(一):C#中互操作性介绍
传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...
- wpf 的style
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- 小白5分钟创建WPF
创建WPF应用程序 基于生产这里选择.Net Framework进行开发 添加控件 由于不熟悉 高效点 我们这里直接拖拽控件 如果你有一点前端基础 你可以在控件对应Code 根据属性 对控件进行设置 ...
- Git(GitHub)配合TortoiseGit使用
1.首先下载安装配置Git 安装请参照 https://www.cnblogs.com/xueweisuoyong/p/11914045.html 配置请参照 https://www.jianshu. ...
- 多源最短路径,一文搞懂Floyd算法
前言 在图论中,在寻路最短路径中除了Dijkstra算法以外,还有Floyd算法也是非常经典,然而两种算法还是有区别的,Floyd主要计算多源最短路径. 在单源正权值最短路径,我们会用Dijkstra ...
- Windows-MacOSX-Ubuntu·不同平台文件互传文件共享
时间:2018-11-23 整理:byzqy 标题:Mac下的virtual box 安装的Ubuntu虚拟机互传文件问题 地址:https://blog.csdn.net/qq_20044689/a ...
- MySQL 源码安装规范
一 .目录规划 MySQL 的目录包括 base 目录和 data 目录,base 目录存放软件文件,每个版本的软件单 独一个目录,例如/usr/local/mysql/mysql5.6.19.dat ...
- 如何实现LRU缓存
大家好,我是程序员学长,今天我们来聊一聊LRU缓存问题. Tips: LRU在计算机软件中无处不在,希望大家一定要了解透彻. 问题描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设 ...
- Kubernetes的安装部署
前言:简述kubernetes(k8s)集群 k8s集群基本功能组件由master和node组成. master节点上主要有kube-apiserver.kube-scheduler.kube-con ...