用于生成和验证HTML表单的库
项目描述
简介
BlazeForm是一个旨在简化HTML表单渲染/处理/验证的库。
特性
基于FormEncode的验证
力求全面覆盖HTML规范
可扩展的渲染系统()(不必使用它)
将与多个WSGI框架协同工作(目前支持Werkzeug)
具有广泛的单元测试
依赖项少:FormEncode、BlazeUtils、WebHelpers2
代码示例
使用它可能看起来像这样
class MyForm(Form): def __init__(self): Form.__init__(self, 'myform') el = self.els.add_header('input-els', 'Optional Elements') el = self.els.add_button('button', 'Button', defaultval='PushMe') el = self.els.add_checkbox('checkbox', 'Checkbox') el = self.els.add_file('file', 'File') el = self.els.add_hidden('hidden', defaultval='my hidden val') el = self.els.add_image('image', 'Image', defaultval='my image val', src='images/icons/b_edit.png') el = self.els.add_text('text', 'Text') el.add_note('a note') el.add_note('an <strong>HTML</strong> note', False) el = self.els.add_text('nolabel', defaultval='No Label') el.add_note('a note') el = self.els.add_password('password', 'Password') el = self.els.add_confirm('confirm', 'Confirm Password', match='password') el.add_note('confirm characters for password field are automatically masked') el = self.els.add_date('date', 'Date', defaultval=datetime.date(2009, 12, 3)) el.add_note('note the automatic conversion from datetime object') emel = self.els.add_email('email', 'Email') el = self.els.add_confirm('confirmeml', 'Confirm Email', match=emel) el.add_note('note you can confirm with the name of the field or the element object') el.add_note('when not confirming password field, characters are not masked') el = self.els.add_time('time', 'Time') el = self.els.add_url('url', 'URL') options = [('1', 'one'), ('2','two')] el = self.els.add_select('select', options, 'Select') el = self.els.add_mselect('mselect', options, 'Multi Select') el = self.els.add_textarea('textarea', 'Text Area') el = self.els.add_fixed('fixed', 'Fixed', 'fixed val') el = self.els.add_fixed('fixed-no-label', defaultval = 'fixed no label') el = self.els.add_static('static', 'Static', 'static val') el = self.els.add_static('static-no-label', defaultval='static val no label')
视图/控制器代码可能看起来像这样
class FormTest(HtmlTemplatePage): def prep(self): self.form = MyForm() def post(self): if self.form.is_cancel(): self.assign('cancel', True) elif self.form.is_valid(): self.assign('values', self.form.get_values()) elif self.form.is_submitted(): # form was submitted, but invalid self.form.assign_user_errors() self.default() def default(self): self.assign('form', self.form)
问题 & 评论
当前状态
代码保持相对稳定,但API可能会更改,尤其是渲染方面。
blazeform tip可以通过easy_install与easy_install blazeform==dev一起安装
变更日志
0.5.1版本发布于2020-10-23
修复tolist中的可变默认参数(556fcf0)
0.5.0版本发布于2020-07-14
停止支持Python 2
改进包设置和CI
支持Python 3.8(1d9afa9)
0.4.2版本发布于2018-01-17
处理文件上传中空白提交的字符串类型
0.4.1版本发布于2017-06-02
更新验证消息以保持Python不同版本之间的一致性
0.4.0版本发布于2016-11-23
添加了对Python 3(3.4和3.5)的支持
设置CI和覆盖率
0.3.9版本发布于2016-05-20
使is_empty更通用,关于输入类型,0不应该为空
0.3.8版本发布于2016-02-24
更新与FormEncode的兼容性,包括1.3版本
0.3.7版本发布于2014-10-27
修复复选框元素以处理空值,在IE 9/10兼容性中作为on/true处理
0.3.6版本发布于2014-10-15
允许对逻辑组(如单选按钮或复选框)使用标签
0.3.5版本发布于2014-08-20
确保表单验证器和元素处理器(FE验证器)是实例
0.3.4版本发布于2012-07-05
表单现在具有all_errors()方法,该方法返回表单和字段错误作为(列表,字典)元组(分别)。
更新检查文件上传的方式。之前,我们正在测试文件名头是否为None,但现在Werkzeug将其作为空字符串发送到FileStorage对象。理论上可能导致行为变化,但仅在窄边情况下。
0.3.3版本发布于2011-11-16
TextAreaElement现在使用maxlength关键字参数
0.3.2版本发布于2011-06-11
修复0.3.1版本中的损坏的分发问题
0.3.1版本发布于2011-06-11
修复了验证错误后单选按钮渲染中的错误
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
BlazeForm-0.5.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e77ea90a1f381f6e67e9846c18fe6b2bc90cd9f2deef39e82bd7b328b7ea828b |
|
MD5 | d4f2a335d9c472ba20b19f7f590da68a |
|
BLAKE2b-256 | 827fad825a725db4ca36ad901d22a7aaba08b688e68ab6f1780f4a36f4fac158 |
BlazeForm-0.5.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7fede7fb7ac0a5f88c9032eac0c9b191b5c88d24c083e07b3129f1bc2bc3eea1 |
|
MD5 | 1b32e84690902d960aa29471c5dc4671 |
|
BLAKE2b-256 | 170240684d398ff33f8e3e4c6cca191f8e7563a736b3cc385b160e5208c563be |