0

HTML テンプレートに表示される画像の取得に問題があります。画像をデータストアに保存することができました。しかし、それをhtmlファイルに送信する方法がわかりません(またはURLを使用して画像を表示しますか?)。助けてください、そしてどうもありがとう。以下は私のコードです:

main.py

    # -*- coding: utf-8 -*-
    #!/usr/bin/env python2.7

    import webapp2
    import common
    from google.appengine.ext import db

    class Image(db.Model):
        filename = db.StringProperty(required=True)
        data = db.BlobProperty(required=True)
        mimetype = db.StringProperty(required=True)

    class Test(webapp2.RequestHandler):
        def get(self):
            common.render(self, 'test.html', {})

        def post(self):
            imgfile = self.request.POST['image']
            img = Image(filename=imgfile.filename, data=imgfile.value, mimetype=imgfile.type)
            img.put()
            common.render(self, 'test.html', {'imgkey': img.key().id()})

    app = webapp2.WSGIApplication([
        ("/.*", Test)],
        debug=True)

test.html:

    <htm>
    <head>
    <title>Test</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    <p></p>Upload image: </p>
    <form method="post" action="/test" enctype="multipart/form-data">
    <input type="file" name="image" /><br />
    <input type="submit" name="確定" />
    </form>
    {% if imgkey %}
      Display:<br />
      <img src="http://.../disp?key={{imgkey}}" /><br />
    {% endif %}
    </body>
    </html>
4

1 に答える 1

1

次のようなものを試してください。

class ImageHandler(webapp2.RequestHandler):
    def get(self, image_id):
        image = Image.get(image_id)
        self.response.headers['Content-Type'] = 'image/jpeg'
        self.response.out.write(image.data)

次に、マッピングで、画像処理用のURLを作成する必要があります。例:

(r'/images/(.*)', ImageHandler)

HTMLコードで、次のように画像タグを作成する必要があります。

<img src="/images/{{img1.key}}" /><br />
<img src="/images/{{img2.key}}" /><br />
于 2012-11-08T14:58:57.230 に答える