在处理其他字段时将文件上传到blobstore

时间:2012-11-10 21:13:25

标签: python google-app-engine blobstore

我有一个带有文件输入和一些文本字段的表单,我想将文件上传到blobstore,然后处理剩下的输入。我从谷歌找到了文档,但我对细节仍然很模糊。如果我有正确的想法,您首先要为表单生成提交URL,如下所示:

 blobstore.create_upload_url('/handlerURL')

其中handlerURL是处理常规表单数据(如文本字段等)的请求处理程序的URL

接下来你定义一个BlobstoreUploadHandler,这就是我模糊的地方......从文档中我了解到BlobstoreUploadHandler处理上传文件然后将重写的请求传递给\handlerURL 。在这里的文档中,我的困惑是:

https://developers.google.com/appengine/docs/python/tools/webapp/blobstorehandlers

BlobstoreUploadHandler

中创建数据模型对象的实例

但是如果我想要进行额外的处理并使用handlerURL请求处理程序中其他字段的数据,那么BlobstoreUploadHandler只是空的,这是正确的还是我误解了这个过程?

2 个答案:

答案 0 :(得分:2)

BlobstoreUploadHandler只是清理多部分邮件的文件上传部分,您仍然可以使用webapp标准方式访问表单的其余字段(例如self.request.get('some_field_in_the _form'))

答案 1 :(得分:0)

这确实有点棘手,因为这里涉及两个处理程序。

  • 第一个来自blobstore本身。它的URL由。返回 create_upload_url调用。它的任务是保存文件(或文件),以及 用blobkey替换它。然后它只是将表单发布到您的主要 处理程序。
  • 第二个是由您定义的。在你的情况下,它的URL是 / handlerURL。在大多数情况下,这里使用BlobstoreUploadHandler,但是 它不必。 BlobstoreUploadHandler使它更容易 检索blobkeys,这就是它的全部。除此之外,它只是 一个webapp.RequestHandler,所以你可以在这里处理你的整个表格