FormPump

软件截图:
FormPump
软件详细信息:
版本: 0.1.7
上传日期: 20 Feb 15
开发: Dave Mankoff
许可: 免费
人气: 5

Rating: nan/5 (Total Votes: 0)

FormPump是一个Python的工具,与流行的模板引擎集成,让您清晰地填入HTML表单。
该FormPump是写尽HTML表单更容易一起工作的Python模板引擎扩展的集合。它直接诉求与填充值到你的投入,应用标签到你的投入和快速的方式显示错误消息的问题。它通过引入一组标签/功能为您的模板创建一个直观和自然的方式,是快速适应到现有代码的形式元素做到这一点。
目前,FormPump支持的Jinja2。
介绍[Jinja2的]例如:
(在此自述所示的例子示于Jinja2的其它模板语言将有类似的用法)。
>>>从formpump进口JinjaPump
>>>从进口的Jinja2环境
>>> ENV =环境(扩展= [JinjaPump])
>>> TPL = env.from_string('''
... {%形式的“榜样”级=“简单形式”%}
... {%标签'INP'}输入一个值:{%ENDLABEL%}
... {%文本“INP”%}
... {%端部结构%}
...''')
>>>打印tpl.render()
<形式的行动=“”级=“简单形式”的方法=“后”>
&NBSP; <标签=“6GiCLEkUToekNy8xuN8AnT2esddU8MG8”>输入一个值:
&NBSP;的

&NBSP;>>>打印tpl.render(form_vars = {'的例子“:{”INP“:123}})
<形式的行动=“”级=“简单形式”的方法=“后”>
&NBSP; <标签=“pnBP2IoFmfExTQdDZe44GKsFN6wrVOPu”>输入一个值:
&NBSP;的

在上面的例子中,我们看到正在创建一个简单的模板对象,它包含的一种形式。如果不带任何参数渲染,它只是简单地打印出来,没有填写信息的形式。当特殊的“form_vars”字典提供,它填补任何值就可以找到到形式,因为它产生的。
您可能还注意到已设置的长,丑陋的ID属性。这些都是必需的,以便FormPump可以联想到输入标签; FormPump使得它们自有其道理。你可以自由地重写它们自己只需提供自己的身份证,并为你的元素属性。 FormPump自动跟踪模板中的标签和输入的,并尝试智能使它们相互关联的,但只有当输入不具有ID的指定,和标签不具备的指定。
填写表格
FormPump通过查找输入值在指定的模板变量填写表格。这个变量的默认form_vars但可以通过设置延长的values​​_dict_name属性进行配置(用于Jinja2的,设置此对环境:env.values​​_dict_name)。
form_vars是字典的字典。顶层键形式上下文标识符,在下面更详细说明。每种形式的上下文是指另一个字典是一组简单的键 - 值对FormPump用来查找值的形式。键指的输入名称。这些值成为价值属性*用于输入,转换为Unicode。
*注:对于像一个单选按钮,其中的值是预定的投入,FormPump使用form_vars值来确定预选,如果其中任何一个单选按钮。
形式Context的
FormPump可以让你在你的模板不止一种形式。每个表单可以有重叠的输入名称。形式是由什么FormPump调用形式方面消除歧义。上面的例子显示了一个表格背景设置为“榜样” - 这是字符串紧随形式的关键字。该字符串必须是一个常量字符串,而不是一个变量或其他动态表情,(有办法解决下面介绍)。
一个简单的例子应该澄清它们的用法:
&NBSP;>>> TPL = env.from_string('''
... {%表“一份”%}
... {%文本“INP”%}
... {%端部结构%}
... {%“B”型%}
... {%文本“INP”%}
... {%端部结构%}
...''')
&NBSP;>>>打印tpl.render(form_vars = {'A​​':{'INP':'A'},'B':{'INP':'B'}})
<形式的行动=“”的方法=“后”>
&NBSP;的

<形式的行动=“”的方法=“后”>
&NBSP;的

形式的上下文实际上起到双重作用。与具有单个页面上的多个HTML表单的常见障碍在于可能难以确定哪个表单提交,如果这两种形式具有相同的操作属性。表格上下文可以提供帮助。
使用默认设置,如图所示迄今为止,他们对输出没有直接的影响。但是,如果你在扩展设置form_name_key财产,FormPump会自动插入一个隐藏输入包含表单上下文值正如其名,(对于Jinja2的,设置这样的环境)。
&NBSP;>>> env.form_name_key ='__'
&NBSP;>>> TPL = env.from_string('''
... {%形式的“榜样”%}
... {%端部结构%}
...''')
&NBSP;>>>打印tpl.render()
<形式的行动=“”的方法=“后”>的

然后提交的值可以用来在服务器上容易地识别所提交的形式。
但是,使用此功能带来了一个更多的并发症!假设我们希望有一种形式重复多次在一个页面上。随着形式的每次重复,我们要改变那些预填的变量。例如,假设你有一个公司的人的名单,并且希望能够编辑并提交更新的电话号码每一个。因此,你要提交到服务器相同的窗体名称,但_different形式的背景下,在填表的时候。进入form_ctx功能,它可以让你改变的地方FormPump查找从飞值范围内。该form_ctx功能,您还可以动态分配上下文名称为您的形式,其中标准型功能不会:
&NBSP;>>> TPL = env.from_string('''
...


    ... {%的人在人们%}
    ...

  • ... {%形成“人”%}
    ... {%form_ctx“的人。%D”%的人['身份证']%}
    ... {%隐藏的“身份证”%}
    ... {%标签“手机”%} {{人['名称']}} {%ENDLABEL%}
    ... {%文本“手机”%}
    ... {%端部结构%}
    ......

  • ... {%ENDFOR%}
    ......

...''')
&NBSP;>>>人= {['身份证':1,'名':'比尔·B','电话':'555-123-4567'},
... {'身份证':2,'名':'克里斯C.','电话':'555-7654-321'}]
&NBSP;>>>打印tpl.render(人=人,
... form_vars =的dict([('的人。%D'%的人['身份证'],人)的人的人))

    &NBSP;

  • &NBSP; <形式的行动=“”的方法=“后”>的
    &NBSP;的
    &NBSP; <标签=“weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM”>比尔·B
    &NBSP;的
    &NBSP;
    &NBSP;

  • &NBSP;

  • &NBSP; <形式的行动=“”的方法=“后”>的
    &NBSP;的
    &NBSP; <标签=“2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i”>克里斯C.
    &NBSP;的
    &NBSP;
    &NBSP;

如果你看看上面,你会看到两种形式,两者具有相同形式的名称,但在填补由于动态form_ctx不同的值。该form_ctx功能会影响到来后,所有的输入。您可以在表单中指定多个form_ctx的,如果你想,每一个先发制人前面。但是请注意,他有可能成为文体混乱。
形式错误
形式错误的工作很像form_vars。您可以使用误差函数在你的模板,以指示错误应该去,然后指定form_error含有任何字典和所有错误消息的嵌套字典,你想放英寸,它没有找到在一个对应值的任何错误form_error查询将被排除在最终输出。
>>> TPL = env.from_string('''
... {%形式的“榜样”%}
... {%错误“field_A”%}
... {%文本“field_A”%}
... {%错误“field_B”%}
... {%文本“field_B”%}
... {%端部结构%}
...''')
>>>打印tpl.render(form_vars = {“榜样”:{“field_A”:“VAL A”,“field_B”:“VAL B”},
... form_errors = {“榜样”:{“field_B”:“错误B”}})
<形式的行动=“”的方法=“后”>
&NBSP;的
&NBSP;
错误B

&NBSP; <输入级=“错误”类型=“文本”名称=“field_B”值=“VAL B”ID =“rP5RGqTnitBwA3oP8BZNcQ9oz3pFp0BC”/>

还要注意的发现错误的任何输入将加入到他们的“错误”的CSS类。
默认情况下,错误消息输出像上面&mdash;在与类“错误消息”一个div。 {%的误差渲染=“定制”%}:您可以通过分配功能,其error_renderers字典,然后指定渲染属性模板中指定自己的错误消息的风格。默认情况下,所有的错误使用“默认”的渲染,你可以自由地重写

要求

  • 在Python中

显影剂的其他软件 Dave Mankoff

htmlmin
htmlmin

12 May 15

plocal
plocal

11 May 15

意见 FormPump

评论没有发现
添加评论
打开图片!