跳转到主要内容

用于生成和验证HTML表单的库

项目描述

https://ci.appveyor.com/api/projects/status/rj4y4vppa4m7l2ar?svg=true https://circleci.com/gh/blazelibs/blazeform.svg?style=shield https://codecov.io/gh/blazelibs/blazeform/branch/master/graph/badge.svg

简介

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)

问题 & 评论

请访问: http://groups.google.com/group/blazelibs

当前状态

代码保持相对稳定,但API可能会更改,尤其是渲染方面。

blazeform tip可以通过easy_installeasy_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 (48.4 kB 查看哈希值)

上传时间

构建分发

BlazeForm-0.5.1-py3-none-any.whl (53.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

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