0

これにはさすがに戸惑う…

でコンテンツIDを取り込みます

app = webapp2.WSGIApplication([('/mobile/upload',MobileUploadHandler), ('/mobile/(.*)',ContentIDHandler)],debug=True)

コンテンツ ID に添付された投稿アクションがある場合は、(jinja2 テンプレートを使用して) フォームを書き出します。

template = jinja_environment.get_template('templates/mobileupload.html') template_values = {'upload_url':blobstore.create_upload_url('/mobile/upload')} self.response.out.write(template.render(template_values))

BLOB のアップロード URL は HTML に表示されます。正しいかどうかはわかりませんが、ブロブのアップロード URL のようです。

フォームが POST すると、このハンドラーにリダイレクトされるはずです。

`class MobileUploadHandler(blobstore_handlers.BlobstoreUploadHandler):

def post(self):`

ただし、そこに到達することはありません。代わりに /mobile/undefined にリダイレクトされます。

これが何を意味するのかよくわかりません。create_upload_url に渡した引数に問題はありますか?

4

1 に答える 1

0

ただし、そこに到達することはありません。代わりに /mobile/undefined にリダイレクトされます。

これはまさにそれがすべきことです。

ユーザーは、1 つ以上のファイル入力フィールドを含む HTML フォームを送信することで、ブロブを作成します。アプリケーションは create_upload_url() を呼び出してこのフォームの送信先 (アクション) を取得し、関数にアプリケーション内のハンドラーの URL パスを渡します。ユーザーがフォームを送信すると、ユーザーのブラウザは指定されたファイルを Blobstore に直接アップロードします。Blobstore は、ユーザーのリクエストを書き換えて、アップロードされたファイル データを保存し、アップロードされたファイル データを 1 つ以上の対応する BLOB キーに置き換えてから、書き換えられたリクエストを create_upload_url() に指定した URL パスのハンドラに渡します。

https://developers.google.com/appengine/docs/python/blobstore/overview

于 2012-10-17T09:55:10.943 に答える