Google应用引擎如何在获取请求中获取url的一部分?
问题描述:
我的网址是:“http:// localhost:8080/i/agt0b3R0eXN3b3JsZHIQCxIJSW1hZ2VCbG9iGIUDDA.jpg”,我只想要“agt0b3R0eXN3b3JsZHIQCxIJSW1hZ2VCbG9iGIUDDA”部分。Google应用引擎如何在获取请求中获取url的一部分?
我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()
非常感谢! ;)
答
我觉得你很亲密。试试这个:
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()
+2
您可能要列出的差异,为了清楚:圆括号的URL正则表达式的相关部分,并且参数添加到get方法接受子表达式的值。 – 2010-11-04 23:43:47
属于在http://www.stackoverflow.com ... – kafuchau 2010-11-04 16:50:36