一个用于从SQLAlchemy模型渲染HTML表格和Excel文件的库。
项目描述
简介
WebGrid是一个为Flask和其他Python Web框架设计的datagrid库,旨在与SQLAlchemy ORM实体和查询一起工作。
通过从一个或多个实体配置网格,WebGrid为报告提供以下功能
基于指定的列和查询连接/过滤/排序选项自动构建SQL查询
渲染到各种目标/格式
HTML输出配对JS(jQuery)以提供动态功能
Excel(XLSX)
CSV
用户控制的数据过滤器
按列选择过滤操作符和值
通用单条记录搜索
存储/检索选择的过滤器选项、排序和分页的会话
安装
使用pip安装
pip install webgrid
通过额外要求提供一些基本国际化功能
pip install webgrid[i18n]
简单示例
有关简单示例,请参阅文档中的入门指南。
运行测试
Webgrid 使用 Tox 来管理测试环境并启动测试。通过 pip install tox 安装后,可以运行 tox 来启动测试套件。
Webgrid 不断针对 Python 3.6、3.7 和 3.8 进行测试。可以通过运行 tox -e py38-base 来仅针对特定的 Python 版本进行测试。
链接
变更日志
0.5.10 版本发布于 2024-07-19
0.5.9 版本发布于 2023-12-08
确保测试方法应用查询字符串 (3ccfb70)
0.5.8 版本发布于 2023-11-10
支持 werkzeug 3 (857eb32)
0.5.7 版本发布于 2023-05-15
修复 OneOf 验证器异常 (3b53cb4)
0.5.6 版本发布于 2023-05-12
修复选项验证器实例 (400288b)
0.5.5 版本发布于 2023-05-12
取消对 formencode 的依赖,改为内部验证 (9575f12)
0.5.4 版本发布于 2023-05-08
匹配日期过滤器粒度与过滤器输入 (029d7e3)
0.5.3 版本发布于 2023-03-02
修复非 SQLAlchemy 记录的列属性提取 (a090491)
0.5.2 版本发布于 2023-02-24
0.5.1 版本发布于 2023-01-20
添加上周、过去和未来日期过滤选项 (6a6eccc)
0.5.0 版本发布于 2023-01-20
0.4.13 版本发布于 2022-12-12
改进 datetime 过滤控件 JS 的命名空间 (e884310)
0.4.12 版本发布于 2022-11-07
在渲染 JSON 时更干净地处理 Decimal 类型 (f8ea07d)
0.4.11 版本发布于 2022-10-18
0.4.10 发布于 2022-08-15
防止由于排序/分页选项而重新执行计数查询(《0cf55e6》:0cf55e6)
0.4.9 发布于 2022-07-25
添加一个快捷路由,用于在没有其他信息的情况下报告网格计数(《9d9a973》:9d9a973)
0.4.8 发布于 2022-03-08
允许在运行时加载 jinja_loader(《4851cc7》:4851cc7)
0.4.7 发布于 2021-12-06
添加 query_select_from 网格属性(《56425a6》:56425a6)
0.4.6 发布于 2021-11-17
在 JSON 渲染中提供所有列标签(《ab28bfe》:ab28bfe)
0.4.5 发布于 2021-11-11
修复空集合的数组枚举过滤器搜索表达式(《39bfc1a》:39bfc1a)
0.4.4 发布于 2021-11-10
修复选项数组枚举过滤器中的错误(《4f09060》:4f09060)
0.4.3 发布于 2021-11-10
0.4.2 发布于 2021-09-30
支持查询到字符串的附加类型(《e76b7e0》:e76b7e0)
0.4.1 发布于 2021-09-22
0.4.0 发布于 2021-09-10
使用 HTML5 日期/时间输入类型作为过滤器(《76f74b9》:76f74b9)
支持具有日期过滤器的箭头类型列(《2eedfdc》:2eedfdc)
允许在过滤器类上设置枚举过滤器类型(《e0a3ac2》:e0a3ac2)
允许在网格实例上添加列(《84bbee3》:84bbee3)
允许根据给定的键对列进行重新排序(《affcb54》:affcb54)
确保列使用其唯一名称进行键控(《7549824》:7549824)
清理搜索值处理(《426ee92》:426ee92)
警告开发者关于 xlsx 测试的 openpyxl 要求(《2c6613d》:2c6613d)
解决 werkzeug Href 弃用问题(《1dc5688》:1dc5688)
解决 flask attachment_name 弃用问题(《f2e6931》:f2e6931)
根据管理器参数加载器设置,将标题操作设置为 post/get(《45cbb69》:45cbb69)
修复 args loader 会话密钥处理(《f7b40c6》:f7b40c6)
根据需要将请求上下文设置在测试 GridBase 中(《e55979b》:e55979b)
添加 JSON 渲染器和 flask API(《274b6bc》:274b6bc)
与 sqlalchemy 1.4 兼容
删除了 python 3.6 测试,添加了 3.9
由于与 sqlalchemy 1.4 不兼容,删除了 blazeweb 测试
0.3.7 发布于 2021-02-16
通过为每个渲染实例一次性编译 Jinja 模板字符串来提高性能(d8815ea)
0.3.6 版本发布于 2021-02-15
修复网格 URL 中的重置参数包含问题(2064aa8)
0.3.5 版本发布于 2021-02-01
0.3.4 版本发布于 2021-01-25
0.3.3 版本发布于 2020-12-10
0.3.2 版本发布于 2020-11-18
移除 werkzeug 版本限制(8082a46)
0.3.1 版本发布于 2020-11-13
修复从聚合过滤器到单搜索的问题(33d772e)
0.3.0 版本发布于 2020-11-04
在 readthedocs.io 上设置文档(d0a486b)
将“添加过滤器”选择移动到顶部,当适用时与搜索行合并(4e0a502)
使用 Sphinx 创建文档(6dbe96a)
使用 openpyxl 进行 XLSX 输出测试(xlrd 已弃用)(51bc80f)
为测试网格添加辅助类(3d5867f)
针对多个数据库(SQLite、PostgreSQL、MSSQL)运行测试套件(69ce644)
当多列具有相同名称时分配唯一键(d34fc89)
减少添加过滤器所需的点击次数(c76320f)
减少标题中使用的垂直间距(54f8eb9)
弃用 XLS 渲染器(6e450f1)
阐明移除 Python 3.5 支持的原因(2f58762)
通过网格 set_filter 方法传递所有过滤器值(af06abe)
在数值过滤器中添加 between 操作符(7736069)
确保网格重置清除搜索值(b8012d2)
0.2.13 版本发布于 2020-07-21
修复为选定的枚举选项渲染多选过滤器时的 bug(5e9aa00)
0.2.12 版本发布于 2020-07-08
修复为列表选项渲染多选过滤器时的 bug(abfd32f)
0.2.11 版本发布于 2020-07-07
0.2.10 版本发布于 2020-05-15
0.2.9 版本发布于 2020-04-09
0.2.8 版本发布于 2020-03-20
修复了 flask 中会话持久性问题(5ed62b8)
0.2.7 版本发布于 2020-02-10
修复了搜索超出范围的日期(时间)字段的问题(3d33663)
0.2.6 版本发布于 2020-01-14
修复了 0.2.5 中引入的 DateFilter/DateTimeFilter 默认操作符的错误(edeb74e)
0.2.5 版本发布于 2020-01-10
0.2.4 版本发布于 2019-12-06
0.2.3 版本发布于 2019-11-27
解决了多选过滤器中的错误选项(36fc18c)
0.2.2 版本发布于 2019-11-26
改进了大型数据集的多选过滤器 UI 性能(8b4fde7)
0.2.1 版本发布于 2019-11-07
修复了过滤器块中搜索框的布局问题(71c5d56)
0.2.0 版本发布于 2019-11-06
0.1.45 版本发布于 2019-09-04
0.1.44 版本发布于 2019-06-27
添加了列和过滤器类以支持枚举类型 (#60) (9838669)
0.1.43 版本发布于 2019-05-20
修复了在键加载无数据时会话加载的 BC 情况(7e11993)
0.1.42 版本发布于 2019-05-13
确保会话存储在加载/保存过程中保持适当的数据类型 (#35) (e7c5bdf)
已知问题:当会话存储没有数据时,出现向后兼容性错误
0.1.41 版本发布于 2019-03-25
修复了当第二个列有小计时的 xlsxwriter 的警告(05e0663)
0.1.40 版本发布于 2019-02-18
py3:修复了 Inspect 调用的弃用警告 (#53) (9c87cc4)
0.1.39 版本发布于 2019-01-03
正确处理日期过滤器“between”操作中的None值(《https://github.com/level12/webgrid/commit/4da6069》rel="nofollow")
0.1.38版本发布于2018-11-14
添加可选的i18n支持,使用morphi(《https://github.com/level12/webgrid/commit/3627e8f》rel="nofollow")注意:升级过程中可能会出现轻微的行为变化!请参阅readme中的“升级”部分获取更多信息!
0.1.37版本发布于2018-09-10
为提高性能,缓存XLSX格式
0.1.36版本发布于2018-08-09
在< cite>webgrid.testing中添加测试辅助函数< cite>assert_rendered_xls_matches
添加对XLSX和CSV渲染器的支持 - 如果已安装xlsxwriter,则会出现xlsx导出链接
已弃用旧的导出机制 - 如果正在调用< cite>g.xls.as_response(),请将其替换为< cite>g.export_as_response(),它将选择正确的渲染器并正确返回响应 - 如果启用了xlsx,则需要执行上述更改以启用xlsx导出
0.1.35版本发布于2018-01-05
修复了tr类与Bootstrap的CSS冲突问题
将多选列表的容器更改为body
0.1.34版本发布于2017-08-25
添加session_override GET参数,允许将额外的操作员修补到会话中(而不是覆盖会话过滤器)
0.1.33版本发布于2017-06-13
限制XLS工作表名称长度为30个字符,符合Excel格式限制
0.1.32版本发布于2017-06-09
修正了Filter.is_active的结果,以考虑默认操作无值的情况
修复了formencode对python 3的要求
更新选项过滤器错误,包括类名
0.1.31版本发布于2016-11-03
修正了DateTimeFilter处理,以避免“无效日期”消息
0.1.30版本发布于2016-10-28
修复了lambda默认参数被网格处理的问题
0.1.29版本发布于2016-10-28
允许将传递给过滤器的默认操作作为一个可调用对象
0.1.28版本发布于2016-10-13
修复了DateFilter和DateTimeFilter验证中的另一个回归
0.1.27版本发布于2016-10-13
修正了DateFilter和DateTimeFilter的空、非空和between操作
0.1.26版本发布于2016-10-03
更新TextFilter以支持像postgresql和sqlite这样的方言的不区分大小写的操作
0.1.25版本发布于2016-09-12
DateTimeFilter中的各种错误修复
在网格和日期过滤器中引入对Arrow日期对象的支持
0.1.24版本发布于2016-05-10
增强了子总账选项,包括求和、平均值、字符串和SQLAlchemy表达式
0.1.23版本发布于2016-04-18
将依赖项从webhelpers更改为webhelpers2
更新以支持新的python-dateutil,包括修复旧的解析异常
修复了与Flask-SQLALchemy 2.1的测试兼容性问题
修复了设置中的测试依赖项问题
支持Python 3.4及更高版本
0.1.22版本发布于2016-02-18
修复了在按标签而不是SA表达式排序时对SQLAlchemy可能产生警告的问题
0.1.21版本发布于2016-02-18
糟糕的发布
0.1.20版本发布于2016-02-18
错误的发布,与0.1.19相同
0.1.19版本发布于2016-02-16
修复了在大型屏幕上显示编辑/删除链接的问题
0.1.18版本发布于2015-12-11
修复了与使用无输入日期过滤器进行默认操作相关的错误
0.1.17版本发布于2015-12-04
添加了YesNoFilter和OptionsIntFilterBase辅助函数
修复了与SQLAlchemy 1.0.9的兼容性问题,以便测试通过
添加了额外的DateFilter运算符
0.1.16版本发布于2015-10-15
修复了可能存在的日期/日期时间过滤器溢出问题
0.1.15版本发布于2015-07-02
添加时间列和过滤器
0.1.14版本发布于2015-05-11
修复了将空字符串作为非必需值2传递给set时导致验证错误的问题
0.1.13版本发布于2015-02-12
如果未提供SA表达式,则尝试使用列标签进行汇总
允许调用者指定过滤器的默认参数
0.1.12版本发布于2014-11-18
允许过滤器在它们的表格行上设置额外的HTML属性
0.1.11版本发布于2014-10-09
修复设置,仅包含安装中的webgrid,不包括测试应用
0.1.10版本发布于2014-10-02
错误修复:在渲染中使用了hide_controls_box网格属性
0.1.9版本发布于2014-09-22
错误修复:在TextFilter上修正了default_op处理
0.1.8版本发布于2014-09-22
为所有过滤器类型启用default_op处理
0.1.7版本发布于2014-09-18
向后不兼容的更改:用multipleSelect插件替换了MultiSelect小部件。相关的JS和CSS必须包含在内(可在webgrid静态资源中找到)
包含了由webgrid CSS引用的缺失图片
0.1.6版本发布于2014-08-22
更新过滤器测试以与SA0.9兼容
与汇总功能相关的重构
针对SQLAlchemy 0.9+进行调整(我们现在支持0.8+)
对dateutils解析错误的解决方案
测试修复
完成开发需求列表
修复nose插件错误,不允许假设路径名的字母大小写一致性(Windows)
添加BlazeWeb适配器
xls_as_response现在是一个适配器方法,由XLS渲染器调用
render_template现在是一个可选的适配器方法,如果失败则回退到Jinja2调用
0.1.5版本发布于2014-05-20
修复nose插件设置以避免警告消息
修复与排序和较新jQuery库相关的JavaScript错误
修复SA表达式测试以避免布尔歧义
避免在过滤器中意外地将Unicode转换为文本
0.1.4版本发布于2014-05-18
修复字符串/Unicode处理以避免将Unicode强制转换为ascii
0.1.3版本发布于2014-05-18
调整创建和注册Flask蓝图的方式
调整蓝图上的路由,使其具有/静态/…前缀的URL
0.1.0 - 0.1.2版本发布于2014-05-17
初始发布
修复打包问题(0.1.1)
调整初始化,如果不使用则不需要xlwt
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。