【发布时间】:2012-10-01 21:23:47
【问题描述】:
您好,我正在开发 IOS 应用程序。我还使用 JSON Web 服务。我还使用 Google App Engine for python。我对 python 和谷歌应用引擎真的很陌生。我想不通这个问题;
我在 json 中发送 base64 图像和其他信息。我想将其他信息保存到数据库(GQL)并保存到图像谷歌文件夹(Blob 商店),并且这张照片 url 与谷歌数据库中的其他信息一起保存。
你能帮帮我吗
更新
import cgi
import datetime
import time
import urllib
import wsgiref.handlers
import os, urllib2, re, base64
import simplejson as json
from google.appengine.ext import db
from google.appengine.api import users,images, files
from google.appengine.ext import webapp
from google.appengine.ext import blobstore
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
import logging
class PanoMessages(db.Model):
first_name=db.StringProperty();
last_name=db.StringProperty();
msg_text=db.TextProperty();
photo_url=blobstore.BlobReferenceProperty();
class IOSDeneme(webapp.RequestHandler):
def post(self):
received_content = self.request.body;
try:
decoded_json = json.loads(received_content);
panoMsg=PanoMessages();
panoMsg.photo_url=save_image_to_blobstore(decoded_json["picture"],"image/png");
panoMsg.first_name=decoded_json["first_name"];
panoMsg.last_name=decoded_json["last_name"];
panoMsg.msg_text=decoded_json["msg_text"];
panoMsg.put();
self.response.out.write(json.dumps({'StatusCode':'2', 'StatusMessage':'OK'}));
except ValueError:
logging.error("json-time sent data which simplejson couldn't parse")
self.response.out.write(json.dumps({'StatusCode':'4', 'StatusMessage':'NO'}));
def save_image_to_blobstore(base64str, mimeType):
from google.appengine.api import files
import binascii
fileName1 = files.blobstore.create(mime_type=mimeType)
with files.open(fileName1, 'a') as f:
f.write(binascii.a2b_base64(base64str))
files.finalize(fileName1)
return files.blobstore.get_blob_key(fileName1)
【问题讨论】:
-
您是否设法将图像从前端作为 JSON 后请求传递给 python?
-
您是否考虑过将图像从应用程序直接发送到 Blobstore? Blobstore Web 服务旨在接受潜在的大量数据(例如照片上传),将照片直接发送到 Blobstore 可能更有效,一旦您知道成功,您可以使用照片元数据向您的应用发送单独的请求. developers.google.com/appengine/docs/python/blobstore/overview
标签: python ios json google-app-engine base64