我的网址是:“http:// localhost:8080 / i / agt0b3R0eXN3b3JsZHIQCxIJSW1hZ2VCbG9iGIUDDA.jpg”我只想要“agt0b3R0eXN3b3JsZHIQCxIJSW1hZ2VCiGIUDIUD”这一部分。
我的app.yaml看起来像:
handlers:
- url: /i/.*
script: static_images.py
statc_images.py:
class StaticImage(webapp.RequestHandler):
def get(self):
image_blob_key = db.Key(self.request.get('')) # here I need the blob_key from url, in this case is "agt0b3R0eXN3b3JsZHIQCxIJSW1hZ2VCbG9iGIUDDA"
image_blob = db.get(image_blob_key)
if image_blob:
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(image_blob.data)
else:
self.response.out.write("Image not available")
def main():
app = webapp.WSGIApplication([('/i/(\d+)\.jpg', StaticImage)], debug=True) # im not pretty sure this is good: '/i/(\d+)\.jpg'
run_wsgi_app(app)
if __name__ == "__main__":
main()
非常感谢! ;)
答案 0 :(得分:3)
我认为你非常接近。试试这个:
class StaticImage(webapp.RequestHandler):
def get(self, blob_key):
image_blob = ImageModel.get(blob_key)
# if you want to use db.get you could.
if image_blob:
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(image_blob.data)
else:
self.response.out.write("Image not available")
def main():
app = webapp.WSGIApplication([('/i/(.*)\.jpg', StaticImage)], debug=True)
run_wsgi_app(app)
if __name__ == "__main__":
main()