跳转到主要内容

一个用于从SQLAlchemy模型渲染HTML表格和Excel文件的库。

项目描述

https://ci.appveyor.com/api/projects/status/6s1886gojqi9c8h6?svg=true https://circleci.com/gh/level12/webgrid.svg?style=shield https://codecov.io/gh/level12/webgrid/branch/master/graph/badge.svg

简介

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

  • 确保会话覆盖参数替换参数列表 (a7c61f6)

  • 防止会话覆盖在表单请求中持久化到头部 (cd1f7cd)

  • 更新测试的 Python 版本 (3557f44)

0.5.9 版本发布于 2023-12-08

  • 确保测试方法应用查询字符串 (3ccfb70)

0.5.8 版本发布于 2023-11-10

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

  • 修复当 openpyxl 不存在时 openpyxl 的类型导入 (d301658)

  • SQLAlchemy 2.0 兼容性(无破坏性更改,保留对 SA 1.4 的支持)(bfedc8d)

0.5.1 版本发布于 2023-01-20

  • 添加上周、过去和未来日期过滤选项 (6a6eccc)

0.5.0 版本发布于 2023-01-20

  • 支持 openpyxl 进行 XLSX 渲染(除了 xlsxwriter)(417c75a)

  • 删除已弃用的 XLS 渲染 (85e6bb9)

  • 在提供默认值时,不需要传递 SA 列到过滤器 (e0fbc0f)

0.4.13 版本发布于 2022-12-12

  • 改进 datetime 过滤控件 JS 的命名空间 (e884310)

0.4.12 版本发布于 2022-11-07

  • 在渲染 JSON 时更干净地处理 Decimal 类型 (f8ea07d)

0.4.11 版本发布于 2022-10-18

  • 更清晰地说明参数加载器、它们的运行顺序、结果的链接方式等 (9b89854)

  • 使网格能够从属性构建查询字符串 (400967d)

  • 在渲染的 JSON 输出中提供总计 (20fe558)

  • 更新数据类类型文档,说明 JSON 网格输入/输出使用 (35ae887)

  • 澄清参数加载器文档 (7ab8d57)

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

  • 支持测试查询构建中的数组类型(《13be909》:13be909

  • 添加支持 PG 数组类型的枚举过滤器(《faa2e64》:faa2e64

  • 支持在所有过滤器上对 JSON 使用 HTML 输入类型指定(《f60efac》:f60efac

0.4.2 发布于 2021-09-30

  • 支持查询到字符串的附加类型(《e76b7e0》:e76b7e0

0.4.1 发布于 2021-09-22

  • 在序列化过滤器规范输出中包含 HTML 字段类型(《e130489》:e130489

  • 向 JSON 定义中添加列类型辅助函数(《a255035》:a255035

  • 如果未在参数中设置,则确保遵循分页默认值(《2834a23》:2834a23

  • 处理来自参数的 None 搜索值(《84c4af5》:84c4af5

  • 允许从网格实例中删除列(《195942a》:195942a

  • 将可排序的列键列表添加到 JSON 渲染的网格规范(《deb5f6b》:deb5f6b

  • API:添加 post-init 设置钩子(《56b4e96》:56b4e96

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

  • 更新 README 以指向文档(083df65

  • 修复测试辅助工具中的导入问题(dcc96c9

0.3.4 版本发布于 2021-01-25

  • 将请求/会话参数加载移至管理器,防止 cookie 溢出(9b4b39e

  • 将弃用的 raises 装饰器用法移至 pytest.raises(42cf416

  • 删除未使用的代码对象/属性(f6e2160

0.3.3 版本发布于 2020-12-10

  • 除非所有都是聚合的,否则排除聚合过滤器从搜索中(8381960

  • 将两部分的过滤器值相邻设置(0ef2a99

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

  • 修复日期过滤器溢出错误(116447b

  • 将测试运行器从 nose 切换到 pytest(dfdb3b0

0.2.10 版本发布于 2020-05-15

  • 简化页面选择,使用输入而不是选择(900abdd

  • 移除 webhelpers2 使用,改用内联 Jinja 模板字符串(0d27fec

  • 将日期过滤器“少于几天前”改为包括今天(2e67da0

  • 允许自定义 CSV 日期格式(1fb7d03

  • 通过网格配置提供查询准备(77f68df

  • 在 CI 中验证 i18n 翻译并添加开发辅助工具(75c0ec0

0.2.9 版本发布于 2020-04-09

  • 允许在 UI 中通过额外的标题对列进行分组(HTML、XLSX 目标)(3a9e64a)

  • 修复了在会话启用时清除单个过滤器的错误(c14c708

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

  • 减少代码复杂性(e588630

  • 处理 DateFilter 和 DateTimeFilter 的缺失过滤值(b0e614b

  • 注意:本版本在 DateFilter/DateTimeFilter 处理默认操作符时存在一些错误

0.2.4 版本发布于 2019-12-06

  • 将搜索的过滤键匹配拆分为单独的方法,以便更容易覆盖(95032d2

  • 修复了 DateTimeFilter 在缺少第二个操作数时的错误操作(acfc86b

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

  • 添加了通用搜索框(通过 enable_search 启用),以便在过滤列上搜索(3624b78

  • 在 Column 上添加了 visible 布尔参数,允许使用 render_in 支持在运行时评估的 lambda 表达式(0e3e125

  • 修复了分页样式问题(b16ddbf

  • 为适用过滤器启用多选 UI(b7744e7

  • 解决了某些弃用警告(104a865

  • 添加了查询的调试日志,以帮助分析性能(d6eae60

  • 更新了 pypi 许可声明,在许可字段中使用 SPDX 标识符(cf59e68

  • 添加了 BSD 3-Clause 许可证(fb4184d

0.1.45 版本发布于 2019-09-04

  • 合并拉取请求 #59 from level12/20-allow-list-render-in (e2a5e46

  • 合并拉取请求 #64 from level12/40-cleanup-url-filters (a269e1c

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

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

WebGrid-0.5.10.tar.gz (153.7 kB 查看哈希值)

上传时间

构建分发

WebGrid-0.5.10-py3-none-any.whl (145.7 kB 查看哈希值)

上传时间 Python 3

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面