什么是最好的Google App Engine blobstore工作流程?

时间:2011-01-21 21:46:02

标签: python google-app-engine forms file-upload blobstore

将blob和其他字段的相关信息保存到模型记录时,将文件上传到blobstore的最佳工作流程是什么?

例如,我应该将表单提交到blobstore上传URL(blobstore.create_upload_url),清理表单,如果错误则重定向并保存并重定向,如果没有?

将错误传回的最佳方法是什么? GET变量?我尝试使用模型来保存表单错误并根据表单错误模型实例重定向,但这很麻烦。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我为此提出的解决方案并不是最漂亮的,但它可以完成工作。在上传视图(在create_upload_url函数中指定的视图)我将post变量从第一页传递到相同的表单类。如果表单有效,我将变量与BlobInfo.key一起保存到模型中。如果它不是一个有效的表单,我将错误保存在内存缓存中并重定向回第一页,其中包含错误变量,触发视图从memcache中检索错误并将其添加到表单实例。

所以这里是步骤。

  1. 创建表单视图
  2. 使用第一个视图中的相同表单检查POST变量
  3. 如果表单有效,请将其与BlobInfo.key一起保存,如果没有将错误保存到具有较小生命周期的memcache并使用url中的memcache密钥重定向到第一个视图
  4. 从memcache中检索表单错误并将其添加到新表单实例
  5. 重新提交已修复错误的表单并保存