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

在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. SQL 练习37

    检索至少选修两门课程的学生学号 SELECT Student.SId,Student.Sname,选课数 from Student, (SELECT sid,COUNT(cid) 选课数 from s ...

  2. SQL 练习16

    按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 SELECT * from SC LEFT JOIN (SELECT sid,AVG(score) 平均成绩 from SC GROUP B ...

  3. Contos7 克隆实例 以及 配置网络-服务-等相关信息

    以下为我自己整理的克隆虚拟机和设置固定IP的方法,记录一下,以防忘记: 桥接模式网络配置 1.配置ip地址等信息在文件里做如下配置: /etc/sysconfig/network-scripts/if ...

  4. jQuery最后案例:商标展示

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  5. openCV入门系列教学(一) 图像的读取、展示与保存

    序言 笔者最近做了两个CV领域的项目,因为数据量不足所以主要使用的是传统的CV方法.这时候不得不夸一句opencv库,让复杂的算法原理变得如此简单(调包调参侠表示很骄傲).所以闲暇下来对opencv的 ...

  6. windows安装trojan记录

    1.trojan 客户端安装教程 https://v2raytech.com/trojan-clients/ 2.chrome安装插件(crx文件)教程 https://www.jianshu.com ...

  7. Javascirpt 面向对象总结-公有/私有

    虽说js是一门面向对象的语言,但是它并不像C++,C#,Java等那样,具有典型的面向对象的特征.因此在这里总结一下如何编写具有面向对象特征的程序. [私有变量] 在对象内部使用'var'关键字来声明 ...

  8. Qt学习日记篇-Qt中使用Curl和jsonCpp

    1.Qt中安装并使用jsonCPP库 1.1  官网下载.https://sourceforge.net/projects/jsoncpp/    解压文件得到 jsoncpp-src-0.5.0 文 ...

  9. Salesforce LWC学习(三十六) Quick Action 支持选择 LWC了

    本篇参考: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.use_quick_act ...

  10. RabbitMQ之消息模式2

    消费端限流 什么是消费端的限流? 假设一个场景,首先,我们RabbitMQ服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面情况: 巨量的消息瞬间全部推送过来,但是我们单个客户端无法 ...