Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 什么是最好的谷歌应用程序引擎blobstore工作流?_Python_Google App Engine_Forms_File Upload_Blobstore - Fatal编程技术网

Python 什么是最好的谷歌应用程序引擎blobstore工作流?

Python 什么是最好的谷歌应用程序引擎blobstore工作流?,python,google-app-engine,forms,file-upload,blobstore,Python,Google App Engine,Forms,File Upload,Blobstore,在将blob和其他字段的信息保存到模型记录时,将文件上载到blobstore的最佳工作流是什么 例如,我是否应该将表单提交到blobstore上传url(blobstore.create\u upload\u url),清理表单,如果出现错误则重定向,如果没有,则保存并重定向 将错误传递回去的最佳方式是什么?获取变量?我尝试使用模型来保存表单错误,并基于表单错误模型实例进行重定向,但这很麻烦。有什么想法吗?我为这个问题想出的解决方案不是最漂亮的,但它完成了任务。在upload视图(在create

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

例如,我是否应该将表单提交到blobstore上传url(blobstore.create\u upload\u url),清理表单,如果出现错误则重定向,如果没有,则保存并重定向


将错误传递回去的最佳方式是什么?获取变量?我尝试使用模型来保存表单错误,并基于表单错误模型实例进行重定向,但这很麻烦。有什么想法吗?

我为这个问题想出的解决方案不是最漂亮的,但它完成了任务。在upload视图(在create_upload_url函数中指定的视图)上,我将post变量从第一页传递到同一表单类。如果表单有效,我将把变量与BlobInfo.key一起保存到模型中。如果它不是有效的表单,我会将错误保存在memcache中,并使用error变量重定向回第一页,该变量会触发视图从memcache检索错误并将其添加到表单实例

同样,这里是步骤

  • 创建表单视图
  • 从第一个视图中检查具有相同形式的POST变量
  • 如果表单有效,则将其与BlobInfo.key一起保存;如果不有效,则将错误以较小的生命周期保存到memcache,并使用url中的memcache键重定向到第一个视图
  • 从memcache中检索表单错误并将其添加到新表单实例
  • 重新提交已修复错误的表单并保存

  • memcache有时在内存压力很大的情况下似乎会很快地排除错误,因此您可能希望将错误保存到数据存储中(并使用cron作业清理旧的错误),或者简单地将所有错误(如果可能)编码到url中。我先尝试了这两种方法,最终会返回到数据存储选项,但是url选项对我不起作用。