Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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_Forms_Validation_Pyramid_Jinja2 - Fatal编程技术网

Python 即使在提交数据或验证出错后仍以表单形式保留数据

Python 即使在提交数据或验证出错后仍以表单形式保留数据,python,forms,validation,pyramid,jinja2,Python,Forms,Validation,Pyramid,Jinja2,我现在正在学习python和jinja2。 是否有一种方法可以在表单中保留数据(通过验证),即使在提交数据后不使用会话? 因为在我的例子中,我必须在我的模板(视图)中操作它几次。甚至在我的控制器部分。谁能教一个更简单的方法呢 以下是我的工作: <input name="address" type="text" value="{% if form.data != '' and form.data and form and form != '' %}{% if form.data.addres

我现在正在学习python和jinja2。 是否有一种方法可以在表单中保留数据(通过验证),即使在提交数据后不使用会话? 因为在我的例子中,我必须在我的模板(视图)中操作它几次。甚至在我的控制器部分。谁能教一个更简单的方法呢

以下是我的工作:

<input name="address" type="text" value="{% if form.data != '' and form.data and form and form != '' %}{% if form.data.address%}{{form.data.address}}{% else %}{{address}}{% endif %}{% elif form.data != '' and not form.data and form and form != ''  %}{{address}}{% else %}{{address}}{% endif %}" disabled/>

我通过form.encode进行验证,因此它在视图(控制器)中进行验证

我知道它有点长。但我能够保留数据,即使我的表格没有经过验证。但这是一种错误的方式。希望有人能教我一个更简单的捷径。想象一下,上面的代码是为一个多文本框编写的。这将是一个艰难的时刻


谢谢你抽出时间

您可以使用隐藏字段

<input type="hidden" name="address" value="{{form.data.address}}" />

您是在使用原始WSGI,还是在Jinja2中使用一些Python web框架?(如果是一个框架,哪一个)?我使用PythonPyramid作为框架。
{% set value = '' %}
{% if form.data != '' and form.data and form and form != '' %}
    {% if form.data.address %}
        {% set value = form.data.address %}
    {% else %}
        {% set value = address %}
    {% endif %}
{% elif form.data != '' and not form.data and form and form != ''  %}
    {% set value = address %}
{% else %}
    {% set value = address %}
{% endif %}