Python GAE:如何在一个网页中组合BlobstoreUploadHandler和RequestHandler

Python GAE:如何在一个网页中组合BlobstoreUploadHandler和RequestHandler,python,google-app-engine,blobstore,requesthandler,Python,Google App Engine,Blobstore,Requesthandler,我正在谷歌应用程序引擎上用Python制作一个邮件应用程序 我想在“普通”网页(发布到RequestHandler)中启用附件上载(发布到BlobstoreUploadHandler) 如果用户已经填写了“正常”表单的一部分,那么在用户上传了他(或她)的附件后(除了在提交帖子之前用javascript复制所有字段),我如何保存这些值?您可以编写一个从两个类派生的请求处理程序: class YourRequestHandler(BlobstoreUploadHandler, RequestHand

我正在谷歌应用程序引擎上用Python制作一个邮件应用程序

我想在“普通”网页(发布到RequestHandler)中启用附件上载(发布到BlobstoreUploadHandler)


如果用户已经填写了“正常”表单的一部分,那么在用户上传了他(或她)的附件后(除了在提交帖子之前用javascript复制所有字段),我如何保存这些值?

您可以编写一个从两个类派生的请求处理程序:

class YourRequestHandler(BlobstoreUploadHandler, RequestHandler):
    pass
我还用webapp2的RequestHandlers尝试了这一点,效果很好

注意:为了防止由于用户上传的文件比应用程序预期的多而导致孤立blob(这很容易发生,因为您无法控制用户的浏览器),我建议您按照以下内容编写post处理程序:

def post(self):
    uploads = self.get_uploads()
    try:
        pass  # Put your application-specific code here.
        # As soon as you have stored a blob key in the database (using a transaction),
        # remove the corresponding upload from the uploads array.
    finally:
        keys = [upload.key() for upload in uploads]
        blobstore.delete_multi(keys)

为什么不将所有表单控件放在要发布到服务器的同一表单中?@Marc上载必须发布到BlobstoreUploadHandler的派生类,表单的其余部分必须发布到RequestHandler的派生类。因此,它们不能是同一html的一部分。用于上载的:
,其余的:
;上传url由GAE.Tnx生成!以前从未使用过多重继承…它解决了我的问题。