今度、リリースするiOSアプリには、ndbを使うかなと思うのだが、その際に、imageの保存について確認する。
HTMLは、下のような感じで用意する。
<form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="image_file" value="ファイルを選択"> <input type="submit" value="送信"> </form>Python側のmodelを以下のように設定
class ImageDataStore(ndb.Model): image_data = ndb.BlobProperty()送信されたときに処理を行うクラスをMainPageとすると下のようになる
class MainPage(webapp2.RequestHandler): def post(self): image_file = self.request.get('image_file') imagedatastore = ImageDataStore() imagedatastore.image_data = image_file imagedatastore.put()dbの場合だと、db.Blob(image_data)という形にして保存する必要があったのですが、その必要がなさそうです。
取り出す時は、
imagedatastore = ImageDataStore() self.response.write(imagedatastore.image_data)という形で、無事に画像を表示することができた。
これもdbの場合、
from google.appengine.api import images imagedatastore = ImageDataStore() img = images.Image(imagedatastore.image_data) self.response.write(img)としなくちゃいけなかったんだけど。
今回は、htmlから送信した場合にうまくいったけど、果たして、iOSからだとうまくいくのだろうか?
検証は続く。
0 コメント:
コメントを投稿