YAFOWIL - 声明式、独立于框架、灵活的 HTML 表单
项目描述
又一个表单小部件库。
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添加到电子邮件蓝图。允许的数据类型是str和unicode。[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_datatype和 yafowil.utils.convert_value_to_datatype考虑空值处理并接受默认的 empty_value关键字参数。[rnix]
引入yafowil.utils.EMPTY_VALUE标记。[rnix]
2.2.1 (2017-05-15)
引入在hybrid_renderer和hybrid_extractor中考虑的hybrid_renderer和叶小部件属性。在div蓝图中使用 hybrid_renderer 。[rnix]
考虑 div 渲染器中的数据属性。[rnix]
修复空 div 渲染器的渲染。[rnix]
在generic_display_renderer渲染空值之前 明确检查None和UNSET。[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]
对于hidden、proxy、 text、textarea、lines、password、checkbox、select、 email、url和number蓝图,将持久工厂默认设置为True 。[rnix, 2015-11-26]
介绍yafowil.persistence、RuntimeData.write和 RuntimeData.has_errors。[rnix, 2015-11-26]
将默认类属性添加到行蓝图。[rnix, 2015-11-20]
在hidden、proxy、text、 textarea、lines、select、file、password、email、 url、search和number蓝图中使用generic_emptyvalue_extractor 。[rnix, 2015-11-20]
在hidden、proxy、text、 lines、select和number蓝图中使用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 保留所有权利。
如果满足以下条件,则允许以源代码和二进制形式重新分发和使用,无论是否经过修改:
源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。
二进制形式的再分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表和以下免责声明。
本软件由版权所有者和贡献者“按原样”提供,并且不提供任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或业务中断),无论是由何种责任理论引起的,无论是在合同、严格责任或侵权行为(包括疏忽或其他方式)中以任何方式使用本软件引起的,即使已被告知存在此类损害的可能性。