Frameworks 在金字塔中的表单视图之间传递数据

Frameworks 在金字塔中的表单视图之间传递数据,frameworks,pyramid,Frameworks,Pyramid,我正在金字塔框架中做一个项目,所以我有一个视图,其中有一个表单,有两个输入类型文本和一个提交按钮 表单是一个post方法,所以我通过post请求获取它们 我想将它们发送到一个新视图,并在屏幕上显示它们。 意思是: 0.0.0.0:6543是第一视图上的表单 我想在此处显示用户在0.0.0.0:6543/输入中插入的值 我尝试使用HTTPfound,但我想我对如何真正传递变量缺乏理解 请帮帮我…最简单的方法就是使用 您需要在服务器上存储数据的会话后端(请参阅)。还有一些基于cookie的会话

我正在金字塔框架中做一个项目,所以我有一个视图,其中有一个表单,有两个输入类型文本和一个提交按钮

表单是一个post方法,所以我通过post请求获取它们

我想将它们发送到一个新视图,并在屏幕上显示它们。 意思是:

  • 0.0.0.0:6543是第一视图上的表单

  • 我想在此处显示用户在0.0.0.0:6543/输入中插入的值

我尝试使用HTTPfound,但我想我对如何真正传递变量缺乏理解


请帮帮我…

最简单的方法就是使用

  • 您需要在服务器上存储数据的会话后端(请参阅)。还有一些基于cookie的会话解决方案,其中所有数据都存储在客户端

  • 第一个视图将所有传递的数据写入会话:

    request.session["mydata"] = value
    
  • 第二个视图从会话读取数据

     print(request.session["mydata"])
    

将数据从一个视图传递到另一个视图的另一种方法是通过URL。与会话不同,这不需要服务器端支持。而且,它很安静;)

在第二个视图中,您只需从
请求中获取变量。获取

greeting = request.GET.get('greeting', '')
subject = request.GET.get('subject', '')
# pass the data to the template
return {
    "greeting": greeting,
    "subject": subject
}

关于您的评论:您不能将HTTPFound与POST一起使用。但是,您可以使用
直接将表单提交到
/此处
。在这种情况下,您可以使用
request.POST.get('greeting')
访问数据

谢谢你,谢尔盖,但是我希望它来自一个POST方法,而不是GET。这可能吗?我已经编辑了我的答案。我不会称之为“在视图之间传递数据”,尽管从技术上讲,这就是它。谢谢你,伙计。这很有帮助:)但我也在犹豫是否可以让它成为restful,这样第二个视图就可以使用
greeting = request.GET.get('greeting', '')
subject = request.GET.get('subject', '')
# pass the data to the template
return {
    "greeting": greeting,
    "subject": subject
}