sqlalchemy 配合bootstrap-table实现后台分页
创建公共的mysql连接函数
def db_session():
db_config='mysql+mysqldb://'+ mysqluser + ':' + mysqlpassword+'@'+mysqlip+'/'+dbname + '?charset=utf8'
echo = True
IsolationLevel='READ COMMITTED'
engine=create_engine(db_config,pool_recycle=60,isolation_level=IsolationLevel,echo=echo)
session=sessionmaker(bind=engine)
return session()
python代码
# -*- encoding: utf-8 -*- import tornado
from sqlalchemy import * from common.db_session import *
from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor class checkJDBCList(tornado.web.RequestHandler):
executor = ThreadPoolExecutor(20) @tornado.gen.coroutine
def get(self): # 跳转页面
title = "test"
ps = self.get_page_config(title)
self.render('test.html',**ps)
@tornado.gen.coroutine
def post(self): # 表格请求数据
system = self.get_arg("system", "%")
offset = self.get_arg('offset', 0)
order_field = self.get_arg('order_field', "createTime")
order_type = self.get_arg("order_type", "desc")
page_size = self.get_arg('pageSize', 10)
# 我们自定义的方法不支持异步。所以使用协程来提升性能
total_count, connection_list = yield self.connection_number_warning(employee_number, system_enname, offset, order_field, order_type, page_size)
# total和rows是必须要的2个参数,可以添加其他的参数
self.write({"total": total_count, "rows": connection_number_warning_list}) @run_on_executor
def connection_number_warning(self, employee_number, system_enname, offset, order_field, order_type, page_size):
total_count = 0
connection_numbe_list = []
session = db_session()
try:
connection_list = session.query() # 查询的字段
connection_list = connection_list.filter() # 查询条件
connection_list = connection_list.offset(offset) # 跳过多少行,分页用的
connection_list = connection_list.order_by(order_field + " " + order_type) # 排序字段和方式
connection_list = connection_list.limit(page_size).all() # 查询多少行数据 for connection_db in connection_list: # 将查询的结果转换成[{"key": "value"}]这种格式
connection = {}
connection["system"] = connection_db[0]
connection_number_list.append(connection) total_count = session.query(func.count("*")).filter().scalar() #查询符合条件的数据总量
except Exception as e:
print e
finally:
session.close()
return total_count, connection_number_warning_list
sqlalchemy 配合bootstrap-table实现后台分页的更多相关文章
- bootstrap Table API和一些简单使用方法
官网: http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/ 后端分页问题:后端返回”rows”.“”total,这样才能重新赋值 ...
- bootstrap table插件动态加载表头
这篇文章主要为大家详细介绍了bootstrap table插件动态加载表头,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 bootstrap的table属性已经很熟悉了,最近遇到一个问题,犹豫 ...
- BootStrap table使用
bootstrap table git address https://github.com/wenzhixin/bootstrap-table 引入文件 <link rel="sty ...
- bootstrap Table 中给某一特定值设置table选中
bootstrap Table 中给某一特定值设置table选中 需求: 如图所示:左边地图人员选定,右边表格相应选中. 功能代码: //表格和图标联动 function changeTableSel ...
- JS组件系列——表格组件神器:bootstrap table
前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...
- JS组件系列——表格组件神器:bootstrap table(二:父子表和行列调序)
前言:上篇 JS组件系列——表格组件神器:bootstrap table 简单介绍了下Bootstrap Table的基础用法,没想到讨论还挺热烈的.有园友在评论中提到了父子表的用法,今天就结合Boo ...
- JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)
前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...
- JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
前言:最近项目里面需要用到表格的冻结列功能,所谓“冻结列”,就是某些情况下表格的列比较多,需要固定前面的几列,后面的列滚动.遗憾的是,bootstrap table里自带的fixed column功能 ...
- JS组件系列——Bootstrap Table 表格行拖拽
前言:之前一直在研究DDD相关知识,好久没更新JS系列文章了.这两天做了一个简单的业务需求,觉得效果还可以,今天在这里分享给大家,欢迎拍砖~~ 一.业务需求及实现效果 项目涉及到订单模块,那天突然接到 ...
- JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
前言:前天刚写了篇JS组件系列——Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的基础上能够同时拖拽选中的多行.博主用了半天时间研究了下,效果是出来了,但是感觉不尽 ...
随机推荐
- 使用acme.sh申请&自动续期LetsEncrypt免费SSL证书(转)
一.简介 LetsEncrypt是一个免费.自动.开放的证书颁发机构.acme.sh 实现了 acme 协议, 可以从 LetsEncrypt 生成免费的证书. 本文介绍如何使用acme.sh来签发并 ...
- elasticsearch 索引和mapping导入导出命令
导mapping:elasticdump \ --input=http://192.168.102.13:9200/search_v1 \ --output=http://192.168.102.69 ...
- 为 Jupyter Notebook指定虚拟环境的 Python 解释器
说明:本机系统为 win10 64 位, base 是集成于 Anaconda3 的 64 位的python,以下是创建虚拟环境 py366-32,安装 3.6.6 版的 32 为python,把 3 ...
- 极简让ingress-nginx最新版(0.25.0)跑起来
裸步骤: 一,manadatory.yaml apiVersion: v1 kind: Namespace metadata: name: ingress-nginx labels: app.kube ...
- 【oracle】drop,truncate,delete用法
drop: drop table 表名:删表 truncate: truncate table 表名:清空数据 delete: delete table 表名 [where 条件]:删某数据 日志:d ...
- web标准以及w3c标准
web标准:将结构.表现.行为分离,使其更具有模块化. w3c标准:标签字母要小写,双标签要闭合,标签不允许随意嵌套. 尽量使用外部样式和外链js,使结构.表现.行为分为三块,这样可以提高页面渲染速度 ...
- CSP 2019游记 & 退役记
扶苏让我记录他AK CSP 的事实 ZAY NB!!! "你不配" 两年半的旅行结束了,我背着满满的行囊下了车,望着毫不犹豫远去的列车,我笑着哭了,笑着翻着我的行囊-- 游记 Da ...
- Flask 中的模板语言 Jinja2 及 render_template 的深度用法
是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...
- Bootstrap-duallistbox的使用
1:首先引入相关js <link href="~/Content/bootstrap.min.css" rel="stylesheet" /> &l ...
- mac Sublime Text 快捷键
mac Sublime Text 快捷键 Tab: 光标后缩进 Shift+Tab: 反缩进 cmd+P: 打开文件切换面板 cmd+/: 行注释 cmd+R: 快速列出/跳转到某个函数 双击可选中光 ...