Skip to main content

YAFOWIL - 声明式、独立于框架、灵活的 HTML 表单

项目描述

又一个表单小部件库

最新的 PyPI 版本 PyPI 下载次数 https://travis-ci.org/bluedynamics/yafowil.svg?branch=master https://coveralls.io/repos/github/bluedynamics/yafowil/badge.svg?branch=master

YAFOWIL 在运行时提供 html 表单的创建和修改。它是轻量级的,并提供了一组可扩展、可重用的蓝图来构建灵活的表单。

YAFOWIL 独立于任何网络框架,但易于在您的网络框架中使用。

这只是关于渲染小部件并提取每个小部件从浏览器返回的数据。它不与存储作斗争。

YAFOWIL 与大多数其他 HTML 表单包不同:它只是配置。不再需要子类化;不需要特定的模式框架。

Yafowil 提供了一个工厂,您可以从中获取小部件实例。或者你自己注册。

详细文档

如果您有兴趣深入挖掘: i 提供了详细的 YAFOWIL 文档。阅读并了解如何在 15 分钟内使用 YAFOWIL 表单创建示例应用程序。

源代码

源代码位于 GIT DVCS 中,其主要分支位于 github

我们很高兴看到许多分叉和拉取请求以使 YAFOWIL 变得更好。

贡献者

  • 延斯·克莱因

  • 罗伯特·尼德雷特

  • 约翰内斯·拉格姆

  • 彼得霍尔泽

  • 阿提拉奥拉

  • 弗洛里安弗里斯多夫

  • 丹尼尔·韦德林

  • 格奥尔格·伯恩哈德

  • Christian Scholz 又名 MrTopf

历史

2.3.4 (2021-11-08)

  • 将弃用的WidgetAttributes.allow_non_node_childs重命名为 allow_non_node_children。[rnix]

2.3.3 (2020-05-30)

  • 如果没有选项,请确保选择标签不会在没有结束标签的情况下呈现。[rnix]

2.3.2 (2019-11-07)

  • 重构 yafowil 插件查找。提高性能。[rnix,詹森斯]

  • 使用logger.warning而不是弃用的logger.warn。[rnix]

  • 添加yafowil.utils.callable_value。[rnix]

  • 修复yafowil.utils.cssid以返回 unicode 以防止在 python 3 中出现格式错误的渲染。 [rnix]

2.3.1 (2018-11-07)

  • 不要将字符串值转储为yafowil.utils.as_data_attrs中的 JSON 数据。[rnix]

  • 将yafowil.utils.generic_html5_attrs重命名为 yafowil.utils.as_data_attrs。[rnix]

2.3 (2018-07-16)

  • Python 3 兼容性。[rnix]

  • 将文档测试转换为单元测试。[rnix]

  • 按命名空间缓存yafowil.utils.get_plugin_names的结果。[rnix]

  • 引入yafowil.base.Factory.clear函数。用于测试以根据需要准备 yafowil.base.factory单例。[rnix]

  • 在YafowilResources.__init__中创建资源的 deepcopy,以防止修改原始资源定义。[rnix]

  • 实现ExtractionError.__eq__以使它们具有可比性。[rnix]

  • 不要在 common.error_renderer中访问已弃用的Exception.message直接将msg属性添加到ExtractionError 并使用此属性来保持错误翻译的正常。[rnix]

  • 向form_edit_renderer添加 html5 数据属性支持。[rnix]

2.2.4 (2017-11-13)

  • 不要在出厂默认设置下为代理蓝图设置持久属性。[rnix]

  • 如果数据类型转换失败,则转换用于在generic_datatype_extractor中生成提取错误的数据类型标签 。[rnix]

  • generic_datatype_extractor添加到电子邮件蓝图。允许的数据类型是strunicode。[rnix]

  • 如果多值选择和 vocab 中不再可用的值,请防止在select_display_renderer中出现KeyError 。[rnix]

2.2.3 (2017-06-12)

  • 修复number_extractor。如果提取的值为UNSET ,则返回UNSET。明确检查最小值最大值,以确保考虑0边界。[rnix]

2.2.2 (2017-06-07)

  • yafowil.common.generic_datatype_extractor认为emptyvalue用作数据类型转换的默认空值。[rnix]

  • 改进yafowil.common.select_edit_renderer。在处理词汇表时,拆分代码并考虑 数据类型空值。[rnix]

  • yafowil.utils.convert_values_to_datatypeyafowil.utils.convert_value_to_datatype考虑空值处理并接受默认的 empty_value关键字参数。[rnix]

  • 引入yafowil.utils.EMPTY_VALUE标记。[rnix]

2.2.1 (2017-05-15)

  • 引入在hybrid_rendererhybrid_extractor中考虑的hybrid_renderer叶小部件属性。在div蓝图中使用 hybrid_renderer 。[rnix]

  • 考虑 div 渲染器中的数据属性。[rnix]

  • 修复空 div 渲染器的渲染。[rnix]

  • 在generic_display_renderer渲染空值之前 明确检查NoneUNSET。[rnix]

2.2 (2016-10-06)

  • 没有变化。

2.2b2 (2016-09-08)

  • 添加yafowil.utils.entry_point装饰器来控制入口点加载的顺序。[rnix, 2016-06-27]

2.2b1 (2016-03-01)

  • 修复setup.py中的拼写错误,修复 #26 [saily, 2016-03-01]

  • 改进yafowil.base.WidgetAttributes以检查属性包含 __iter__而不是__getitem__捕获KeyError。将整个 yafowil 测试套件(包括官方插件小部件)加速大约 18%。[rnix, 2016-02-07]

  • 修复yafowil.utils.cssid。CSS ID 不能包含现在被规范化的特殊字符,也不应该包含被下划线替换的空格。[rnix, 2015-11-30]

  • 对于hiddenproxytexttextarealinespasswordcheckboxselectemailurlnumber蓝图,将持久工厂默认设置为True 。[rnix, 2015-11-26]

  • 介绍yafowil.persistenceRuntimeData.writeRuntimeData.has_errors。[rnix, 2015-11-26]

  • 将默认属性添加到蓝图。[rnix, 2015-11-20]

  • hiddenproxytexttextarealinesselectfilepasswordemailurlsearchnumber蓝图中使用generic_emptyvalue_extractor 。[rnix, 2015-11-20]

  • hiddenproxytextlinesselectnumber蓝图中使用generic_datatype_extractor 。[rnix, 2015-11-19]

  • 介绍generic_emptyvalue_extractor。[rnix, 2015-11-19]

  • 介绍generic_datatype_extractor 。[rnix, 2015-11-18]

  • Widget.attrs中的值也可以是UNSET。[rnix, 2015-11-18]

  • 将选择蓝图的默认值从list()更改为 UNSET。这代表了一个空的单值和一个空的多值选择。[rnix, 2015-11-18]

  • 修复 URL 提取器。如果空输入不需要,则不得引发 ExtractionError。[rnix, 2015-11-18]

2.1.3 (2015-04-12)

  • 修复电子邮件提取器。如果空输入不需要,则不得引发 ExtractionError。[rnix, 2015-04-11]

2.1.2 (2015-01-23)

  • 如果结构子级也是结构性的,则修复 Compound_extractor情况,如果是,则跳过提取。[rnix, 2014-08-29]

  • 引入yafowil.resources.YafowilResources类,可作为资源发布特定框架集成代码的基础。[rnix, 2014-08-07]

  • 介绍配置入口点。它们在注册 入口点之后执行,应该用于主题配置(为此,所有出厂默认值都已设置很重要)[rnix, 2014-08-02]

  • 使用管道装饰器而不是管道工元类。[rnix, 2014-08-01]

  • “”替换为输入值。[rnix,2014-07-16]

2.1.1 (2014-06-10)

  • 包装不是 ZIP 安全的。[潮流,2014-06-10]

2.1 (2014-06-03)

  • 考虑YAFOWIL_FORCE_DUMMY_TSF os.environ 变量,该变量可用于在运行测试时强制虚拟翻译字符串工厂。[rnix, 2014-05-13]

  • 添加翻译。[rnix, 2014-04-30]

  • 添加yafowil.tsf模块,用于创建 yafowil 相关的翻译字符串工厂。[rnix, 2014-04-30]

  • 出于向后兼容性的原因,重新添加yafowil.utils.Unset类(从node.utils导入)。[rnix, 2014-04-30]

  • 如果接收到的提取值为空字符串,则在数字提取器中返回UNSET 。[rnix, 2014-03-20]

  • tag_renderer中使用generic_html5_attrs。[詹森斯,2013-03-06]

  • 为复选框文本区域蓝图添加默认 CSS 类。[rnix, 2013-03-06]

  • 浮点数输入分隔符也可以是逗号。[rnix, 2013-12-02]

  • 不要为结构小部件生成 id 属性。修复 #6,其中为表单中的所有结构元素生成相同的 id。[2013-05-27]

  • 蓝图接受通用 HTML5数据属性的数据属性。[rnix, 2013-04-11]

  • 引入yafowil.utils.generic_html5_attrs辅助函数。[rnix, 2013-04-11]

  • 为复选框蓝图引入with_label属性。对于跨浏览器兼容的复选框 CSS 很有用。[rnix, 2013-03-29]

  • 使用 json.dumps 获取数据属性值以将 Python 类型转换为 JSON。将数据属性值括在单引号中以满足 JSON 要求。将 camelCase 数据属性名称转换为 camel-case。从 jQuery 1.6 开始,它们在调用 .data() 后会自动转换回 camelCase。[主题]

  • yafowil.utils中导入node.utils.UNSET ,而不是提供自己的未设置标记类和实例。[rnix, 2013-02-10]

  • 添加帮助函数,用于从属性键列表创建数据属性字典,该列表可以传递给标记渲染器。[2012-12-05]

  • 允许将自定义 html 属性字典传递给 textarea_renderer、select_edit_renderer 和 input_generic_renderer。使用字典而不是将它们作为函数参数传递以避免命名空间冲突。[主题]

2.0.2

  • 考虑input_attributes_common中的maxlength。[rnix, 2012-11-03]

2.0.1

  • 尽可能使用attr_value来查找属性值。[rnix, 2012-10-25]

  • 引入attr_value实用程序。[rnix, 2012-10-25]

  • Textarea 可以有title属性。[rnix, 2012-10-25]

2.0

  • 修复默认帮助文本。[rnix, 2012-10-10]

  • 修复了工厂在调用 display_renderers 时返回错误渲染的错误 [jenses, 2012-10-09]

  • 将计划重命名为宏。[rnix,詹森斯]

  • 自定义链可以作为字典传递给工厂。[rnix, 2012-09-28]

  • 为模式display引入display_proxy属性。[rnix, 2012-08-08]

  • 添加通用标签蓝图。[rnix, 2012-08-08]

  • 采用管道工1.2。[rnix, 2012-07-29]

  • 采用节点0.9.8。[rnix, 2012-07-29]

  • pep8ify [詹森斯,2012-06-08]

  • 使 TBSSupplement 兼容:`zExceptions``zope.exceptions`。主要变化:html 输出不再是默认值,getInfo 的 kwarg 现在是`as_html`(原为`html`)。还在补充文件中添加了蓝图作为信息,以便更容易识别表单部分。[詹森斯,2012-06-07]

1.3.2

  • 在generic_display_renderer中检查 'if not value' 而不是 'if value is None' 。[2012-05-23]

  • 将标题属性添加到标签蓝图。[2012-05-02]

  • 修复文件提取器。[rnix, 2012-04-21]

  • 避免在文件蓝图中呈现值属性。[rnix, 2012-04-21]

1.3.1

  • 标签属性可以是可调用的。[rnix, 2012-02-19]

1.3

  • 使用入口点以更明确和可插入的方式加载资源。因此,小部件等 yafowil 扩展可以定义一个入口点。[詹森斯,2012-02-14]

  • 为选择编辑渲染器添加大小属性。[詹森斯,2012-01-20]

  • 修复号码提取器 [jenses, 2012-01-20]

  • 为选择蓝图添加默认 css 类。[rnix, 2011-12-18]

  • 注册编号蓝图显示渲染器。[rnix, 2011-12-18]

  • 考虑提交蓝图渲染器中的表达式。[rnix, 2011-12-18]

  • checked属性可以在复选框蓝图中显式设置。[rnix, 2011-11-21]

  • 修复yafowil.common.select_edit_renderer中的错误。与空的词汇一起崩溃。[rnix, 2011-11-16]

  • 添加线条蓝图。渲染一个文本区域并将行提取为列表。[rnix, 2011-11-11]

  • 为工厂添加了计划的概念,这是一组命名的蓝图。计划已注册到工厂,并且可以使用#符号进行寻址。[詹森斯,2011-09-29]

  • td蓝图现在可以用作叶子小部件的复合或一部分。[rnix, 2011-09-28]

  • 接受化合物的价值属性。[rnix, 2011-09-27]

  • 使data.extracted可用作odict,其中包含儿童对化合物的值。[rnix, 2011-09-27]

  • 将蓝图自定义参数传递给工厂中的 Widget 构造函数,以进行调试和复制。[rnix, 2011-09-26]

  • 将yafowil.base.Widget._properties重命名为 yafowil.base.Widget.properties。[rnix, 2011-09-26]

  • 添加div蓝图。在“<div>”元素中呈现。可用于复合和叶子小部件。[rnix, 2011-09-23]

1.2

  • 命名在蓝图和小部件之间有所不同 [jenses, 2011-09-20]

  • 修复回溯测试 [rnix, 2011-09-15]

1.1.3

  • 回溯补充现在带有 html 支持。现在缺少对 html 部分的测试。[詹森斯,2011-09-01]

1.1.2

  • 追溯补充现在格式更好。[詹森斯,2011-08-30]

1.1.1

  • 修正:模式显示确实吃掉了所有以前的渲染。这使得错误小部件在显示模式下无法显示该值。已修复:empty_display_renderer 代理现在所有以前的渲染。[詹森斯,2011-08-11]

1.1

  • 扩展选择小部件以更好地控制选择和多选的 UI [rnix,2011-08-05]

  • Plumb node.parts.Order到小部件节点 [rnix, 2011-07-28]

  • 也将标签和字段渲染器定义为显示渲染器 [rnix, 2011-07-25]

  • 不推荐使用模式小部件 [rnix,2011-07-08]

  • now 模式是一个中心元素:每个 Widget 实例现在都有一个模式:编辑、显示或跳过。编辑是默认的,可以正常工作。Display 渲染新的 display_renderer 链。跳过只是呈现一个空的 Unicode 字符串。[詹森斯,2011-07-07]

1.0.4

  • 清理 html5 处理,我们现在相信 novalidate... [jenses, 2011-06-11]

  • 为选择小部件添加禁用属性。[詹森斯,2011-06-01]

  • 为表单添加novalidate属性 [rnix, 2011-05-23]

  • 如果值为 UNSET,则在模式渲染器中返回空字符串 [rnix,2011-05-23]

1.0.3

  • 测试覆盖率 [rnix, 2011-05-07]

  • 添加小部件值验证检查“多值”属性与“值”长度。[rnix, 2011-05-07]

  • 删除过时的 _value。取而代之的是用户fetch_value。[rnix, 2011-05-07]

  • 为标签小部件的属性添加可选的。[rnix, 2011-04-23]

  • 选择提取器 - 修复所需的行为 [rnix,2011-04-19]

  • 复合渲染器 - 考虑小部件节点上的“结构”属性 [rnix,2011-04-19]

  • 数字提取器 - 如果未设置则返回 val [rnix,2011-04-14]

  • textarea 渲染器 - 对照 None 检查值并渲染空字符串 [rnix, 2011-04-14]

1.0.2

  • 为电子邮件小部件添加html5type属性 [rnix, 2011-03-16]

1.0.1

  • 添加html5required属性 [rnix, 2011-03-16]

1.0

  • 采用节点 0.9 [rnix]

  • 文档 [jenses, rnix]

1.0-测试版

  • 让它工作 [jenses, rnix, et al, 2010-12-27]

执照

版权所有 (c) 2010-2021,BlueDynamics Alliance,奥地利,德国,瑞士 版权所有 (c) 2021,Yafowil Contributors 保留所有权利。

如果满足以下条件,则允许以源代码和二进制形式重新分发和使用,无论是否经过修改:

  • 源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。

  • 二进制形式的再分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表和以下免责声明。

本软件由版权所有者和贡献者“按原样”提供,并且不提供任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或业务中断),无论是由何种责任理论引起的,无论是在合同、严格责任或侵权行为(包括疏忽或其他方式)中以任何方式使用本软件引起的,即使已被告知存在此类损害的可能性。

项目详情