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 ...
随机推荐
- SQL 练习37
检索至少选修两门课程的学生学号 SELECT Student.SId,Student.Sname,选课数 from Student, (SELECT sid,COUNT(cid) 选课数 from s ...
- SQL 练习16
按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 SELECT * from SC LEFT JOIN (SELECT sid,AVG(score) 平均成绩 from SC GROUP B ...
- Contos7 克隆实例 以及 配置网络-服务-等相关信息
以下为我自己整理的克隆虚拟机和设置固定IP的方法,记录一下,以防忘记: 桥接模式网络配置 1.配置ip地址等信息在文件里做如下配置: /etc/sysconfig/network-scripts/if ...
- jQuery最后案例:商标展示
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- openCV入门系列教学(一) 图像的读取、展示与保存
序言 笔者最近做了两个CV领域的项目,因为数据量不足所以主要使用的是传统的CV方法.这时候不得不夸一句opencv库,让复杂的算法原理变得如此简单(调包调参侠表示很骄傲).所以闲暇下来对opencv的 ...
- windows安装trojan记录
1.trojan 客户端安装教程 https://v2raytech.com/trojan-clients/ 2.chrome安装插件(crx文件)教程 https://www.jianshu.com ...
- Javascirpt 面向对象总结-公有/私有
虽说js是一门面向对象的语言,但是它并不像C++,C#,Java等那样,具有典型的面向对象的特征.因此在这里总结一下如何编写具有面向对象特征的程序. [私有变量] 在对象内部使用'var'关键字来声明 ...
- Qt学习日记篇-Qt中使用Curl和jsonCpp
1.Qt中安装并使用jsonCPP库 1.1 官网下载.https://sourceforge.net/projects/jsoncpp/ 解压文件得到 jsoncpp-src-0.5.0 文 ...
- Salesforce LWC学习(三十六) Quick Action 支持选择 LWC了
本篇参考: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.use_quick_act ...
- RabbitMQ之消息模式2
消费端限流 什么是消费端的限流? 假设一个场景,首先,我们RabbitMQ服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面情况: 巨量的消息瞬间全部推送过来,但是我们单个客户端无法 ...