跳转到主要内容

FormAlchemy通过在HTML表单环境中映射SQLAlchemy类(模型)大大加快了开发速度。

项目描述

描述

FormAlchemy 通过从给定模型自动生成 HTML 输入字段来消除样板代码。FormAlchemy 将尝试通过检查模型的属性来确定应该返回哪种 HTML 代码,并生成适合开发者应用的现成 HTML 代码。

当然,FormAlchemy 并不能解决所有问题,即开发者可能只想显示给定模型中的几个列。因此,FormAlchemy 也具有高度的可定制性。

请访问 FormAlchemy 的主页获取文档和更多信息

http://docs.formalchemy.org/

您可以订阅 FormAlchemy 的邮件列表

http://groups.google.com/group/formalchemy

变更

1.5.6 (2020-11-12)

  • 包含完整的变更日志和更新链接的版本。

1.5.5

  • 修复了 setup.pysix 的错误导入。

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.copyfileobjcgi.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

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 (476.0 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面