在 Pyramid 中的表单视图之间传递数据
Passing data between form views in Pyramid
我正在金字塔框架中制作一个项目,所以我有一个视图,其中有一个表单,其中包含 2 个输入类型文本和一个提交按钮。
表单是一个 post 方法,所以我通过 POST 请求获取它们。
我想将它们发送到新视图并在屏幕上显示它们。
含义:
0.0.0.0:6543 是第一眼看到的表格。
我想显示用户在 0.0.0.0:6543/此处输入的值
我尝试使用 HTTPfound,但我想我缺少对如何真正传递变量的理解。
请帮帮我...
最简单的方法是使用 sessions。
您需要一个将数据存储在服务器上的会话后端(参见 pyramid_redis_session)。还有基于 cookie 的会话解决方案,其中所有数据都存储在客户端。
第一个视图将所有传递过来的数据写入会话:
request.session["mydata"] = value
第二个视图从会话中读取数据
print(request.session["mydata"])
另一种将数据从一个视图传递到另一个视图的方法是通过 URL。与会话不同,这不需要服务器端支持。另外,它是 RESTful ;)
return HTTPFound('/here?greeting=Hello&subject=World')
在您的第二个视图中,您只需从 request.GET
:
中获取变量
greeting = request.GET.get('greeting', '')
subject = request.GET.get('subject', '')
# pass the data to the template
return {
"greeting": greeting,
"subject": subject
}
关于您的评论:您不能将 HTTPFound 与 POST 一起使用。但是,您可以使用 <form method="post" action="/here" ...>
直接将表单提交给 /here
。在这种情况下,您将能够使用 request.POST.get('greeting')
访问数据。
我正在金字塔框架中制作一个项目,所以我有一个视图,其中有一个表单,其中包含 2 个输入类型文本和一个提交按钮。
表单是一个 post 方法,所以我通过 POST 请求获取它们。
我想将它们发送到新视图并在屏幕上显示它们。 含义:
0.0.0.0:6543 是第一眼看到的表格。
我想显示用户在 0.0.0.0:6543/此处输入的值
我尝试使用 HTTPfound,但我想我缺少对如何真正传递变量的理解。
请帮帮我...
最简单的方法是使用 sessions。
您需要一个将数据存储在服务器上的会话后端(参见 pyramid_redis_session)。还有基于 cookie 的会话解决方案,其中所有数据都存储在客户端。
第一个视图将所有传递过来的数据写入会话:
request.session["mydata"] = value
第二个视图从会话中读取数据
print(request.session["mydata"])
另一种将数据从一个视图传递到另一个视图的方法是通过 URL。与会话不同,这不需要服务器端支持。另外,它是 RESTful ;)
return HTTPFound('/here?greeting=Hello&subject=World')
在您的第二个视图中,您只需从 request.GET
:
greeting = request.GET.get('greeting', '')
subject = request.GET.get('subject', '')
# pass the data to the template
return {
"greeting": greeting,
"subject": subject
}
关于您的评论:您不能将 HTTPFound 与 POST 一起使用。但是,您可以使用 <form method="post" action="/here" ...>
直接将表单提交给 /here
。在这种情况下,您将能够使用 request.POST.get('greeting')
访问数据。