Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在返回验证错误时维护用户输入数据_Python_Validation_Pyramid - Fatal编程技术网

Python 在返回验证错误时维护用户输入数据

Python 在返回验证错误时维护用户输入数据,python,validation,pyramid,Python,Validation,Pyramid,我使用金字塔作为我的框架来处理一个项目。由于我以前经常使用.ASP,每当用户输入无效信息时,我可以将文本分配给标签(通过“runat”属性,然后只在后端分配消息),这将向用户发出信号,表明他们输入的信息无效,而不会删除他们输入的所有数据。在python中是否有一种等效的方法来实现这一点?最终,我希望能够向用户报告他们的数据是否有效(我可以将它们重定向到同一页面),但是,我更希望不必刷新屏幕,让用户第二次填写表单(或者因为错误而多次填写) 在概念层面上,在“传统”(非AJAX)场景中,每次用户单击

我使用金字塔作为我的框架来处理一个项目。由于我以前经常使用.ASP,每当用户输入无效信息时,我可以将文本分配给标签(通过“runat”属性,然后只在后端分配消息),这将向用户发出信号,表明他们输入的信息无效,而不会删除他们输入的所有数据。在python中是否有一种等效的方法来实现这一点?最终,我希望能够向用户报告他们的数据是否有效(我可以将它们重定向到同一页面),但是,我更希望不必刷新屏幕,让用户第二次填写表单(或者因为错误而多次填写)

在概念层面上,在“传统”(非AJAX)场景中,每次用户单击提交时都会重新呈现表单,这是无法避免的。您的ASP应用程序在幕后可能也在做同样的事情。技巧是,如果出现错误,使用用户已经输入的数据重新呈现表单

通常看起来是这样的(假设您没有使用任何表单库并手工编写表单)

在模板中,您只需注意使用数据(如果存在)预先填充输入:

<input type="text" name="first_name" value="${data.get('first_name, '')}" />

以及在view函数传递验证消息时呈现验证消息:

%if 'first_name' in errors:
    <span class="error">${errors['first_name']}</span>
%endif
%如果“名字”出现错误:
${errors['first_name']}
%恩迪夫

表单库(deform等)负责管道,但原理是相同的-view函数接收POST请求,验证数据,并使用相同的数据和错误消息(如果有)重新呈现表单。

您使用的是什么表单库?通常,您会用用户发布的信息重新填充de表单。我只需将我的html包装成如下格式:
%if 'first_name' in errors:
    <span class="error">${errors['first_name']}</span>
%endif