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

在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. QT 编译的过程

  2. Java String 综述(上篇)

    摘要: Java 中的 String类 是我们日常开发中使用最为频繁的一个类,但要想真正掌握的这个类却不是一件容易的事情.笔者为了还原String类的真实全貌,先分为上.下两篇博文来综述Java中的S ...

  3. 关于Mybatis中表中字段名和POJO中字段名不同的解决方法

    项目结构: POJO中: package com.domain; /** * @author mzy * 定义orders表对应的实体类 */ public class Order { /** * C ...

  4. 笔记本Linux系统,修改合盖不待机

    最近买了一个新笔记本,所以就把老的笔记本当作服务器使用了.但是一盒笔记本的盖子就会待机,真的是麻烦.操作如下可以解决问题: 1.编辑 logind.conf 文件,命令如下 vi /etc/syste ...

  5. Redis cluster的部署

    Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下 ...

  6. Why TypeScript?

    本文经作者授权,翻译总结自 TypeScript Team 的成员 orta 的个人博客 <Understanding TypeScript's Popularity>. 原作者: ort ...

  7. JVM双亲委派模型及其优点

    JVM双亲委派模型及其优点 什么是双亲委派模型? 双亲委派模型: ​ 如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器, ...

  8. Linux下sed找出IP中第四位

    ip addr|sed -n '9p'|egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sed -nr 's#^.*inet (.*) b ...

  9. shell脚本书写

    #!/bin/bash #指定脚本默认使用的命令解释器 第1行 幻数 #!/usr/bin/python #!/bin/awk #!/bin/sed

  10. 20210718 noip19

    考场 去年考过这场,心态直接爆炸 T1 一眼 T2 当初是我讲的,基本都记得(flag) T3 只记得是树形 DP,但觉得 rush 完前两题后用大量时间应该能搞出来 结果 T2 写了好久,还写假了. ...