FormAlchemy通过在HTML表单环境中映射SQLAlchemy类(模型)大大加快了开发速度。
项目描述
描述
FormAlchemy 通过从给定模型自动生成 HTML 输入字段来消除样板代码。FormAlchemy 将尝试通过检查模型的属性来确定应该返回哪种 HTML 代码,并生成适合开发者应用的现成 HTML 代码。
当然,FormAlchemy 并不能解决所有问题,即开发者可能只想显示给定模型中的几个列。因此,FormAlchemy 也具有高度的可定制性。
请访问 FormAlchemy 的主页获取文档和更多信息
您可以订阅 FormAlchemy 的邮件列表
变更
1.5.6 (2020-11-12)
包含完整的变更日志和更新链接的版本。
1.5.5
修复了 setup.py 中 six 的错误导入。
1.5.4
没有记录任何变更。
1.5.3
允许通过“attrs=…”列选项覆盖 renderer_opts
1.5.2
引入 1.4.5-dev 的变更。对此表示歉意。
1.5.1
小的代码重构
1.5.0
重要的一点:与 Python 3.x 兼容。
实际上,Python 3.3+,因为 u'' 字符串字面量
放弃对 Pylons 的支持,因为那将不会移植到 Py3
在 Selenium 与 Py3 兼容之前跳过 HTML5 测试
1.4.5-dev
添加 FieldSet.reconfigure(类似于 configure,但不会丢弃您之前的更改)
不要测试您传入的会话是否是知名会话类的一员。它可能是一个代理对象。
1.4.4
支持 SQLAlchemy 0.9+
删除 sqlalchemy 0.4 兼容性
启用将 'attrs' 传递给字段选项
与 Werkzeug 的互操作性
网格界面:直接迭代列
XSS 保护:始终将字段内容 HTML 转义
向 Grid 添加了迭代器
1.4.3
允许字段将其 readonly 状态设置为 False 以及 True。
支持 SQLAlchemy 0.8+
破坏了测试系统并添加了可疑的修复(个人看法 – smurfix)
1.4.2
WebOb1.2 兼容
添加一些 HTML5 渲染器
改进 fsblob 删除。问题 16
在 pytlons 中添加对 fanstatic 的支持(感谢 Bruno Binet,又名 inneos)
1.4.1
直接将 WebOb 类似的请求传递给 FieldSet。
还实现了将请求传递给 Grid。
添加了对使用 Field.set(html={'some': 'thing'}) 设置 .html_options 的支持
添加了对 set(validators=[validator1, validator2]) 的支持,该功能添加指定的验证器。
修复了 set(null_as=…),之前是 nul_as,并且连接得不好。
改进了 Field.set() 方法的文档
支持 zope.schema.Password
修复问题 9、10、11、12
1.4
修复问题 5、7
允许将表单 binf 到 WebOb 类似的请求
添加 Column 包装器以在模型中存储一些表单选项
字段标签翻译
1.3.9
修复与基于非 WebOb 框架的 unicode 问题
1.3.8
使用 webob.multidict 作为 data。这将提高未来(例如:py3k 迁移)的 unicode 处理。WebOb 现在是一个依赖项。
添加 to_dict() 方法和 .bind(with_prefix=True/False) 以帮助处理 json 数据
改进 ext.fsblob。文件使用 shutil.copyfileobj 从 cgi.FieldStorage 字段写入文件系统
添加 HiddenFieldRendererFactory 并允许通过 .hidden() 和 .set(hidden=True) 隐藏日期/时间字段(感谢 tarek 将这个想法放在我的脑海中)
添加了德语翻译(感谢 @disko 提交的 pull request)
修复问题 1、2(在 github 上)
1.3.6
修复问题 150、151、153、161、162
添加了 field.label() 和 field.label_tags()
主要重构。不再存在 base 模块。
1.3.5
不再使用 Binary 类型。使用 LargeBinary 代替。
修复问题 145、147
1.3.4
renderer._value 已弃用。使用 renderer.value
添加了 renderer.raw_value
如果存在,使用 Model.__html__() 来以只读模式渲染模型。
1.3.3
添加了 .insert_after(field, new_field) 到 FieldSet 对象中。与 .insert() 相同,但它在指定的字段之后添加。
文档改进
修复了 131 到 137 的问题
1.3.2
添加了 .value_objects 到 Field 和 FieldRenderer 对象中。在处理 ForeignKeys 时,返回对象而不是主键列表。
添加 IntervalFieldRenderer
切换回 WebHelpers
添加匈牙利语翻译(125)
修复了与最新版 couchdbkit 相关的 bug
将 paster 模板更新到 Pylons 1.0b1
修复了问题 123、124、127、128
1.3.1
在 MANIFEST.in 中包含 CSS
1.3
添加新的控制器以根据 pylons RESTController 生成 CRUD 接口
改进了 couchdb 支持(允许使用 RESTController)
实验性支持 RDFAlchemy
将日期格式添加到配置模块中。
添加 fs.copy()
添加 zope.schema.List 和 zope.schema.Choice 支持(感谢 Christophe Combelles)
修复了问题 107、113、114、117、118
改进了 pylons 管理界面的 CSS
1.2.1
在 Fieldset 中添加了 fs.append(field)、fs.insert(field, new_field) 和 del fs.field。fs.add() 已弃用。
添加了 field.set() 来原地修改字段。
bug 修复:问题 70、80、82、97
添加了西班牙语翻译(感谢 robarago)
添加了 .with_html 方法到 AbstractField,该方法将被传递给渲染器,允许向渲染的 HTML 标签添加一些 HTML 属性。已从 render 方法中删除 html_options。(见问题 #60)
验证器现在作为第二个参数传递给正在验证的字段 field。警告:这意味着为了向后兼容,需要在您的函数中添加参数。验证器函数签名已从 myfunc(value) 更改为 myfunc(value, field=None)。
ext.couchdb 现在使用 couchdbkit 而不是 py-simplecouchdb
添加了 .with_metadata 方法到 AbstractField,允许您向字段添加元数据。与 .with_html() 的区别在于,传递的属性不会渲染在 HTML 元素中,而只是为了在模板中使用,根据这些属性调整输出。请参阅 docs/forms.txt
1.2
添加一个 paster 模板以启用 FA 支持来启动 pylons 项目
管理界面看起来更漂亮了
性能改进
非-SQLA 字段不再被认为是“实验性的”
具有 with_null_as 功能(见问题 #52)
具有 prefix 功能(见问题 #59)
在自动查询选项值时,如果存在,将使用关系上的 order_by
同义词意识(您不需要手动排除被覆盖的属性)
ext.couchdb(实验性)
1.1.1
bug 修复:问题 36、37、38、39、40、41、42、43、45、46、47、49
添加了 EscapingReadonlyRenderer
添加了 Date*Renderer 翻译
1.1
添加了 formalchemy.ext.pylons.admin;请参阅 http://docs.formalchemy.org/ext/pylons.html
添加了 formalchemy.ext.fsblob;请参阅 http://docs.formalchemy.org/ext/fsblob.html
支持组合主键
支持原始类型的组合外键
FieldSet.bind 的模型参数现在是可选的
将 i18n 应用到网格标签
文档改进
bug 修复
1.0.1
bug 修复
1.0
添加了 i18n 支持(gael.pasgrimaud)
添加了文件上传支持(gael.pasgrimaud)
添加了映射属性别名支持(gael.pasgrimaud)
将 kwargs 添加到 FieldSet 和 Grid 渲染方法中,这些参数将传递给模板。这允许轻松使用自定义模板,而无需进行子类化。(lbruno)
删除了 query_options。只需将查询作为参数传递给 options 参数,FA 将将其转换为(描述,值)对。FA 还接受可迭代的对象作为 options 参数的值。
unicode(object) 被用作默认选项描述,而不是 str(object)。 (之前,只有在引擎的 convert_unicode 选项开启时才使用 unicode。) 这与正常的 SA 行为更加一致。
添加了健壮性检查,以防止进入不一致的状态。特别是,绑定属于会话但未设置主键的对象是不允许的。解决方案:绑定到类,FA 将实例化它并将其从会话中取出 [直到同步()]。然后您可以将该实例作为 .model 属性取出。
如果需要,sync() 将将模型保存到会话。
添加 Field.with_renderer
允许手动添加的字段从绑定的模型中拉取其值
fs.[field] 返回配置后的字段版本,而不是未配置版本。fs.fields 重命名为 fs._fields。添加 Field.reset() 以深拷贝未配置版本。
对于自定义类型,需要显式渲染器(FieldRenderer.render 已移除)
新的文档 http://docs.formalchemy.org (gael.pasgrimaud)
bug 修复
0.5.1
同义词支持
bug 修复
0.5
组合字段和自定义类型支持
连接表支持
网格(FieldSet 的伴侣)可以同时渲染和编辑多个实例。
FieldSet 支持只读(取代了未记录的 Table),Grid(取代了 TableCollection)
FieldSet 可以渲染非映射类的字段(实验性)
更合理的(向后不兼容,但易于移植)小部件(FieldRenderer)API
FieldSet.render_fields 现在类似于 FieldSet.fields 的 OrderedDict。使用 render_fields.[iter]values() 获取类似于旧 render_fields 的可迭代对象。
bug 修复
0.3.1
bug 修复
更好的 DateTime 支持
可扩展的小部件 API(想要使用你喜欢的日期选择器?没问题。)
FieldRenderer 现在是 from formalchemy import * 的一部分,用于此处
对模板 API 的微小更改(详细信息请参阅文档)。除非你已经编写了自定义模板,否则不会影响你
尽可能按声明顺序排序字段,而不是按字母顺序,当 include= 不存在时
验证器套件完善(minlength,maxlength,regex,email,currency)
添加了有关小部件 API 和验证函数的文档部分
0.3
全新的 API,基于 Fields 而不是列名
支持手动添加的字段,而不仅仅是 SA 模型的属性
关系(FK 将以相关对象的下拉列表的形式渲染)
验证 + 同步
基于模板的渲染以实现更大的可定制性。包含 Tempita;如果存在,将检测并使用 Mako
WebHelpers 已不再是依赖项;FA 需要的小部分已移动到 helpers.py。 (这促使 WebHelpers 0.6 以非重大方式破坏了向后兼容性。)
遍布文档字符串
初步支持 SA 0.5
回归测试套件
0.2
添加了“disable”,“disable_pk”,“disable_fk”选项。
修复了“readonly*”选项仅适用于“password”字段的错误。
添加了日期/时间字段格式的“date”,“time”和“datetime”选项。
添加了“bool_as_radio”选项。
添加了一个欺骗浏览器强制 POST 未选中的复选框的技巧。
修复了来自“dropdown”选项的“opts”不再作为 <select> 标签的属性渲染的错误。
修复了与 SQLAlchemy 0.4.1 的兼容性问题。现在,“foreign_key” Column 属性是“foreign_keys”。
添加了“fieldset”选项。
添加了“include”选项。由 Adam Gomaa 提供的补丁。
添加了“textarea”选项。由 Adam Gomaa 提供的额外补丁,用于传递原生整数元组作为 size 参数值。
添加了新的实验性、可自定义性较低的“TableItem”和“TableCollection”。TableItem 从绑定的模型渲染表。TableCollection 从与绑定的模型具有相同类的项目集合中渲染表:TableCollection(bind=client, collection=client_list)。绑定的模型可以是未实例化的映射类。
目前移除了对NullType类型列的检测,因为这看起来是SA 0.4版本特有的。NullType HTML字段究竟代表什么呢?
FieldSet现在返回嵌入在<fieldset> HTML标签中的字段。
为FieldSet实现了‘legend’选项,以便提供可选的可自定义的<legend>标签。FieldSet默认使用绑定模型的类名作为legend。可以通过传递一个字符串到‘legend’选项来自定义legend:legend=’我的图例’。可以通过传递legend=False来创建没有图例的字段集。
核心的大幅变化。将单个formalchemy.py模块拆分为formalchemy包。更多类,更多灵活性。此外,我们现在使用模型级别和列级别渲染引擎:“ModelRenderer”和“FieldRenderer”。
“ModelRender”和“FieldRender”允许您渲染整个模型(如FieldSet,但没有fieldset/legend标签)或单个列。
FieldSet现在使用“ModelRenderer”。
添加了新的实验性、可定制性较低、与表单无关的“TableItem”和“TableCollection”。TableItem从绑定模型渲染表格。TableCollection从与绑定模型相同类的项目集合中渲染表格:TableCollection(bind=client, collection=client_list)。绑定模型可以是未实例化的映射类。
0.1
初始发布。
项目详情
FormAlchemy-1.5.6.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b55450b345b2252843c2cd58878b3c2a6c020ffa4bbb8e3101b29576ec0266e |
|
MD5 | 886a3a5184736e9b356786f552015687 |
|
BLAKE2b-256 | 59f3848c6763aab06813e0c59da106960fb8b5c258c308dcf6982513cfd27bc2 |