用于生成和验证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 |