在 Web2py 中验证 HTML 表单

Validating HTML Forms in Web2py

是否可以将 Web2py 的表单验证与标准 HTML 表单一起使用?例如,具有以下形式:

<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

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

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}},其中包括隐藏的表单名称和 CSRF 标记字段以及结束表单标记。

或者直接使用validators——直接实例化,传入要验证的值,检查返回元组的第二个元素是否为None(表示验证成功) :

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