Я создал нечто похожее на то, чего вы хотите достичь .. Надеюсь, это поможет
image.py
import os
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp.util import run_wsgi_app
class Profile(db.Model):
image=db.BlobProperty()
class disp_image(webapp.RequestHandler):
def get(self):
key = self.request.get('key')
image = Profile.get(key)
self.response.headers['Content-Type'] = "image/png"
return self.response.out.write(image.image)
class MainPage(webapp.RequestHandler):
def get(self):
image = self.request.get('image')
pro=Profile()
if image:
pro.image = db.Blob(image)
import logging
logging.info('persisted')
pro.put()
prof=Profile().all()
return self.response.out.write(template.render('view.html',{'prof':prof}))
def post(self):
return MainPage.get(self)
application = webapp.WSGIApplication([
('/', MainPage),
('/disp', disp_image)
], debug=True)
def main():
run_wsgi_app(application)
if __name__ == '__main__':
main()
view.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/">
<input type="file" name='image'/>
<input type='submit' value="submit"/>
{% for prof in prof %}
<img src="/disp?key={{prof.key}}" />
{% endfor %}
</form>
</body>
</html>
app.yaml
application: sample-app
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: image.py
url
>>> req.host
'localhost:80'
>>> req.host_url
'http://localhost'
>>> req.application_url
'http://localhost/blog'
>>> req.path_url
'http://localhost/blog/article'
>>> req.url
'http://localhost/blog/article?id=1'
>>> req.path
'/blog/article'
>>> req.path_qs
'/blog/article?id=1'
>>> req.query_string
'id=1'