You can write a request handler that derives from two classes:
class YourRequestHandler(BlobstoreUploadHandler, RequestHandler):
pass
I also tried this with webapp2's RequestHandlers and it works.
P.S.: In order to prevent orphaned blobs because the user uploaded more files than your application expects (this can easily happen as you have no control over the user's browser), I suggest to write your post handler along the following lines:
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)