我有一个关于提供/渲染保存在blobstore中的图像的问题
我收到404错误 好像找到了网址? http://clockinapple.appspot.com/serve/AMIfv97XybVYJy5Jk1e7WCSfCc-IO7zBtlVaC8ef8-Im / etc /
代码与示例基本相同 - 任何帮助非常感谢
这是我的处理程序代码:
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, resource):
resource = unicode(str(urllib.unquote(resource)))
blob_info = blobstore.BlobInfo.get(resource)
self.send_blob(blob_info)
class GetBlobstoreUrl(BaseHandler):
def get(self):
upload_url = blobstore.create_upload_url('/upload/')
self.response.out.write(upload_url)
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file')
blob_info = upload_files[0]
user_info = blobstore.BlobInfo.all().get().filename
text = user_info
head, sep, tail = text.partition('.')
user_info = head
photo = clockin.UserPhoto(blob_key=blob_info.key(), employee=user_info)
photo.put()
class GetLogs(BaseHandler):
def get(self):
logs = clockin.UserPhoto.all()
params = {'logs': logs}
return self.render_template('logs.html', **params)
这是我的型号代码:
class UserPhoto(db.Model):
employee = db.StringProperty(db.Key)
blob_key = blobstore.BlobReferenceProperty()
create_timestamp = db.DateTimeProperty(auto_now_add=True)
update_timestamp = db.DateTimeProperty(auto_now=True)
我的路线:
RedirectRoute('/serve/([^/]+)?', ServeHandler, name='serve_handler', strict_slash=True),
RedirectRoute('/logs/', GetLogs, name='get_logs', strict_slash=True),
RedirectRoute('/get_blobstore_url/', GetBlobstoreUrl, name='get_blobstore_url', strict_slash=True),
我如何服务html :(我们是实例)
<td><img src='/serve/{{us.blob_key.key()}}'></img></td>
答案 0 :(得分:1)
我直接查询了blobstore并正确显示了图像 我希望这可以帮助别人 我的经纪人:
class PicDownload(BaseHandler):
def get(self):
emps = clockin.Employee.all().fetch(100)
ekey = self.request.GET.get("select1")
ekey = str(ekey)
afile = []
blob_info = blobstore.BlobInfo.all().filter('filename =', ekey+'.jpg').order('- creation').fetch(20)
for a in blob_info:
afile.append(get_serving_url(a))
form = 'get_pics.html'
params = {'blob_info': blob_info,
'afile': afile,
}
return self.render_template(form, **params)
在HTML方面:
<select id="select1" name='select1' onchange='this.form.submit()'>
{% for e in emps %}
<option value={{e.key()}} ><href a=/pic_download/{{e.key()}}>{{e.username}}
</href>
</option>
{% endfor %}
</select>