在Web2py中验证HTML表单

时间:2015-02-18 17:37:27

标签: web2py

是否可以使用标准HTML表单的Web2py表单验证?例如,使用以下格式:

<form class="search" action="{{=URL('search')}}" method="get">
                <div class="input-append">
                    <input type="text" id="query" name="query" class="span3" placeholder="Search the website"/>
                    <button type="submit" class="btn"><i class="icon-search"></i> Go! </button>
                </div>
</form>

我可以检查输入字段IS_ALPHANUMERIC还是IS_NOT_EMPTY?或者,使用任何其他验证器? http://web2py.com/books/default/chapter/29/07/forms-and-validators#Validators

1 个答案:

答案 0 :(得分:2)

在控制器中,您可以执行以下操作:

def search():
    form = SQLFORM.factory(Field('query', requires=IS_ALPHANUMERIC()))
    if form.process().accepted:
        ...
    elif form.errors:
        ...
    return dict(form=form)

在视图中,将结束</form>标记替换为{{=form.custom.end}},其中包含隐藏的formname和CSRF标记字段以及结束表单标记。

或者,您可以直接使用验证器 - 只需实例化它,传入要验证的值,并检查返回的元组的第二个元素是否为None(表示验证成功):< / p>

if IS_ALPHANUMERIC()(request.vars.query)[1] is None:
    [code for successful validation]