参考了网上很多资料,自己搞了一个适合的

在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个人解决方案的更多相关文章

  1. 有关 Table 获取Json 的解决方案

    目录 写在前面 具体操作步骤 写在前面 在项目的开发过程中,我们使用最多的是表单的序列化.而有关以Table的序列化成Json的方法不太常见. 在做功能的时候发现,没有提交如何把Table序列化成Js ...

  2. 把SQLAlchemy查询对象转换成字典

    1-假设查出来的为单个对象 1-1 在model.py中为模型对象添加字典转换函数: from exts import db class User(db.Model): __tablename__ = ...

  3. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  4. Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据

    Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段 ...

  5. Atitit.列表页and查询条件的最佳实践(1)------设定搜索条件and提交查询and返回json数据

    Atitit.列表页and查询条件的最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段显示类 ...

  6. 自定义mysql类用于快速执行数据库查询以及将查询结果转为json文件

    由于每次连接数据库进行查询比较麻烦,偶尔还需要将查询结果转为json格式的文件, 因此暂时定义一个mysql的类,将这些常用的方法进行封装,便于直接调用(代码如下,个人用,没写什么注释). 注:导入了 ...

  7. SQL Server中将查询结果转换为Json格式脚本

    这篇文章主要介绍了SQL Server中将查询结果转换为Json格式脚本分享,本文直接给出实现代码,需要的朋友可以参考下 原文地址:http://www.jb51.net/article/61462. ...

  8. python测试开发django-15.查询结果转json(serializers)

    前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse ...

  9. tornado 07 数据库—ORM—SQLAlchemy—查询

    tornado 07 数据库—ORM—SQLAlchemy—查询 引言 #上节课使用query从数据库查询到了结果,但是query返回的对象是直接可用的吗 #在query.py内输入一下内容 from ...

随机推荐

  1. noip模拟6(T2更新

    由于蒟弱目前还没调出T1和T2,所以先写T3和T4.(T1T2更完辣! update in 6.12 07:19 T3 大佬 题目描述: 他发现katarina大佬真是太强了,于是就学习了一下kata ...

  2. DataTable 读取每一行的内容

    foreach (DataRow item in dataTable.Rows) { for (int i = 0; i < dataTable.Columns.Count; i++) { Co ...

  3. 使用JS获取SessionStorage的值

    参考:https://www.jb51.net/article/132729.htm 获取sessionStorage的意义 首先获取它是为了将获得的信息输出或者alert():让人容易看到, 其次, ...

  4. LeetCode42. 接雨水(java)

    42.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种 ...

  5. etcd学习(7)-etcd中的线性一致性实现

    线性一致性 CAP 什么是CAP CAP的权衡 AP wihtout C CA without P CP without A 线性一致性 etcd中如何实现线性一致性 线性一致性写 线性一致性读 1. ...

  6. Ubuntu16.04 Linux 下无痛安装、配置Gogs

    本文在Win7+VMware的ubuntu 16.04中测试,安装Gogs,Install from binary. 准备工作: sudo apt-get install git sudo addus ...

  7. 怎样去除EXCEL中的重复行

    工具/原料 安装了EXCEL2010的电脑一台 步骤/方法   假如我们的表格中有下图所示的一系列数据,可以看出其中有一些重复.   首先我们选中所有数据.可以先用鼠标点击"A1单元格&qu ...

  8. Dapper同时操作任意多张表的实现

    1:Dapper的查询帮助类,部分代码,其它新增更新删除可以自行扩展 using Microsoft.Extensions.Configuration; using System; using Sys ...

  9. grpc服务发现与负载均衡

    前言 在后台服务开发中,高可用性是构建中核心且重要的一环.服务发现(Service discovery)和负载均衡(Load Balance)一直都是我关注的话题.今天来谈一下我在实际中是如何理解及落 ...

  10. js 中连续的 3 个点 three dots (...) in javascript

    这个叫扩展运算符 https://dev.to/sagar/three-dots---in-javascript-26ci 5 种用法 1 function myFunc(...[x, y, z]) ...