我在Google App Engine上使用Python製作郵件應用程序。GAE:如何在1個網頁中合併BlobstoreUploadHandler和RequestHandler
我想在'正常'網頁(發佈到RequestHandler)中啓用附件上傳(發佈到BlobstoreUploadHandler)。
如果用戶填寫了「正常」表格的一部分,如何在用戶上傳他(她)的附件後保留這些值(然後在提交帖子之前用javascript複製所有字段)?
我在Google App Engine上使用Python製作郵件應用程序。GAE:如何在1個網頁中合併BlobstoreUploadHandler和RequestHandler
我想在'正常'網頁(發佈到RequestHandler)中啓用附件上傳(發佈到BlobstoreUploadHandler)。
如果用戶填寫了「正常」表格的一部分,如何在用戶上傳他(她)的附件後保留這些值(然後在提交帖子之前用javascript複製所有字段)?
你可以寫,從兩個類派生的請求處理程序:
class YourRequestHandler(BlobstoreUploadHandler, RequestHandler):
pass
我也webapp2的的RequestHandlers嘗試這樣做,它的工作原理。 PS:爲了防止孤立的斑點因爲用戶上傳了比應用程序期望的更多的文件(這很容易發生,因爲您無法控制用戶的瀏覽器),我建議您按照以下幾行編寫您的文章處理程序:
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)
Tnx!從未使用過多重繼承......它解決了我的問題。 – rimvanvliet
爲什麼不把所有的表單控件放在要發佈到服務器的同一表單中? – Marc
@Marc上傳必須發佈到BlobstoreUploadHandler的派生類,而表單的其餘部分必須發佈到RequestHandler的派生類。因此他們不能是同一個html