【django后端分离】mysql原生查询命令后,RawQueryset类型的自定义序列化返回json格式
1:设置mysql原生分页
# 监控系统首页显示分页
def MyPagination(limitid,offsetid):
limitid =str(limitid)
offsetid =str(offsetid) # 这里是mysql原生代码
show_goods = "select dal_keywordtable.* from (select asin, min(ranking) as minRanking from `dal_keywordtable` GROUP BY asin) t2 LEFT JOIN dal_keywordtable on t2.asin = dal_keywordtable.asin and t2.minRanking = dal_keywordtable.ranking limit " + limitid + " offset " + offsetid + ";"
return show_goods # 用于测试调用
ret = MyPagination(1,2)
print(ret) 返回结果是: # 这里只是确认下参数是否被调用进去
select dal_keywordtable.* from (select asin, min(ranking) as minRanking from `dal_keywordtable` GROUP BY asin) t2 LEFT JOIN dal_keywordtable on t2.asin = dal_keywordtable.asin and t2.minRanking = dal_keywordtable.ranking limit 1 offset 2; # 从第1个取 取2个
2:GET请求连接上找到传入的limit与offset:
from utils import orm # 导入上面的分页连接,带参数调用这个方法 # 从第offsetid开始取,取limitid个
limitid = request._request.GET.get("limit")
offsetid = request._request.GET.get("offset")
raw_Pagination =MyPagination(limitid,offsetid)
obj_rawqueryset = models.KeyWordTable.objects.raw(raw_Pagination) # 得到
3:序列化查询的RawQueryset类型,返回json格式:
# 序列化
json_data = {}
data_list = []
for obj in obj_rawqueryset:
data = {} # 要在遍历里面创建字典用于存数据
print(obj)
data["goods_title"] = obj.goods_title
data["src"] = obj.src
data["single_keyword"] = obj.single_keyword
data["asin"] = obj.asin
data["seed_asin"] = obj.seed_asin
data["ranking"] = obj.ranking
data["position"] = obj.position
data["time"] = obj.time.strftime('%Y-%m-%d')
data_list.append(data)
json_data['data'] = data_list
return Response(json_data) # 返回给前端的json格式:
{
"data": [
{
"goods_title": "Sloggers Women's Waterproof Rain and Garden Shoe with Comfort Insole, Blue Swirls, Size 6, Style 5117SWL06",
"src": "https://images-na.ssl-images-amazon.com/images/I/41CSEL0bHeL._SS36_.jpg",
"single_keyword": null,
"asin": "B077TDGR51",
"seed_asin": "B01H7X9ASA",
"ranking": 666666,
"position": null,
"time": "2019-12-02"
},
{
"goods_title": "S1loggers Women's Waterproof Rain and Garden Shoe with Comfort Insole, Blue Swirls, Size 6, Style 5117SWL06",
"src": "https://images-na.ssl-images-amazon.com/images/I/41CSEL0bHeL._SS36_.jpg",
"single_keyword": null,
"asin": "B077TDGR53",
"seed_asin": "B01H7X9ASB",
"ranking": 666666,
"position": null,
"time": "2019-12-02"
},
{
"goods_title": "S2loggers Women's Waterproof Rain and Garden Shoe with Comfort Insole, Blue Swirls, Size 6, Style 5117SWL06",
"src": "https://images-na.ssl-images-amazon.com/images/I/41CSEL0bHeL._SS36_.jpg",
"single_keyword": null,
"asin": "B077TDGR52",
"seed_asin": "B01H7X9ASC",
"ranking": 2,
"position": null,
"time": "2019-12-03"
}
]
}
【django后端分离】mysql原生查询命令后,RawQueryset类型的自定义序列化返回json格式的更多相关文章
- Django 1.8.11 查询数据库返回JSON格式数据
Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- nodejs操作 mongoose(mongodb)和Sequelize(mysql)查询数据后添加新属性未生效
最近在着手koa时候,发现mongoose(mongodb)查询数据库后添加新属性,前端拿不到新属性问题, 然后测试了一下Sequelize(mysql),发现也有同样的问题存在.此时着手干! 1.1 ...
- Mysql运行状态查询命令及调优详解
(转载自点击打开链接) MySQL运行状态及调优(一) 一.查看MySQL运行情况SHOW STATUS; 二.查看INNODB数据库引擎运行状态SHOW ENGINE INNODB STATUS; ...
- mysql常用查询命令
转引自:https://www.cnblogs.com/widows/p/7137184.html 常用mysql命令 show variables like 'character_set_clien ...
- mysql特殊查询----分组后排序
使用的示例表 学生表----student 表结构 数据 查询方法 一.第一种方法 我认为这是比较传统,比较容易理解的一种方式,使用自连接,并在连接条件中作比较,之后再对查询条件分组统计,排序. se ...
- 【django后端分离】rbac组件(文件源代码+使用)
1:用户,角色,权限,菜单表设计 from django.db import models # 用户菜单 class UserMenu(models.Model): title = models.Ch ...
- Mysql—常见查询命令
查询mysql的日志 -- 查找错误日志文件路径 mysql> show variables like "log_error"; -- 查找通用日志文件路径 mysql> ...
- MySQL常用查询命令(连接查询&子查询)
多张表联合起来查询即为连接查询,可分为: 内连接:等值连接.非等值连接.自连接 外连接:右外连接.左外连接 也就是先把多张表通过某种指定条件用join...on...语法连接起来,然后再进行where ...
随机推荐
- 在scrapy中过滤重复的数据
当为了确保爬到的数据中没有重复的数据的时候,可以实现一个去重的item pipeline 增加构造器方法,在其中初始化用于对与书名的去重的集合 在process_item方法中,先取出item中要判断 ...
- Leetcode963. Minimum Area Rectangle II最小面积矩形2
给定在 xy 平面上的一组点,确定由这些点组成的任何矩形的最小面积,其中矩形的边不一定平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. 示例 1: 输入:[[1,2],[2,1],[1,0] ...
- Leetcode946. Validate Stack Sequences验证栈序列
给定 pushed 和 popped 两个序列,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true:否则,返回 false . 示例 1: 输入:pus ...
- C/C++编译的程序内存组成:
#include int main(){int a[1000000];//局部变量return 0;}编译运行后发现溢出错误.#include int a[1000000];//全局变量int mai ...
- [转]一分钟明白 VS manifest 原理
什么是vs 程序的manifest文件 manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单. 为什么要有manifest文件 一台pc上,用一组建往往 ...
- utils02_使用github创建一个远程仓库
1.注册github账号 https://github.com/ 2.第一次登陆需要创建一个仓库 3.在本地生成密钥和公钥 ssh-keygen -t rsa 会在当前用户下生成2个文件就是公钥和密钥 ...
- [转]js模块化——AMD及require.js
由CommonJS组织提出了许多新的JavaScript架构方案和标准,希望能为前端开发提供统一的指引.AMD规范就是其中比较著名一个,全称是Asynchronous Module Definitio ...
- org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.connections.spi.ConnectionProvider]
从hibernate3升级到4应该会遇到 应该添加引用 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 ...
- PL/SQl连接数据库ORA-12154错误
先说说我遇到的问题: 1.在sql/plus下可以正确连接到数据库(oracle10g): 2.检查我机器(64)位环境变量的配置,没问题.path环境变量没问题(C:\oraclexe\app\or ...
- 代理模式(Proxy、Subject、RealSubject)(代购火车票)
.(为其他对象提供一种代理以控制对这个对象的访问.) 在实际的软件开发中,我们经常面临着对一个对象进行访问控制的问题,由于跨越网络或安全方面等原因不能直接或不需要直接被访问,直接访问的代价会给系统带来 ...