Google应用引擎如何在get请求中从url获取部分内容?

时间:2010-11-04 16:29:00

标签: google-app-engine

我的网址是:“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()

非常感谢! ;)

1 个答案:

答案 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()