在python gae中上载和显示图像?

在python gae中上载和显示图像?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,在python gae中上传和显示图像很困难 这就是我所做的。 1.在app.yaml文件中,我添加了: handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: /(.*\.(gif|png|jpg)) static_files: /\1 upload: (.*\.(gif|png|jpg)) - url: .* script: main.app 然后写下

在python gae中上传和显示图像很困难

这就是我所做的。 1.在app.yaml文件中,我添加了:

handlers:

- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: /(.*\.(gif|png|jpg))
  static_files: /\1
  upload: (.*\.(gif|png|jpg))

- url: .*
  script: main.app
  • 然后写下:
  • 在我的处理人下:

    if avatar:
      character_info.avatar = db.Blob(images.resize(avatar, 240,360))
       character_key = character_info.put()
    
    我可以在gae admin data viewer中看到一个二进制输入,但不确定如何准确地调用它。然后,我将characters对象传递到PageHandler中,并调用for循环来获取每个化身

    {% for character in characters %}
    #{{another html page is render here}}
    {% endfor %}
    
    我试过这些,但都不管用

    <img src="/images?img_id={{character.key()}}"></img>
    <img src="/images/header.jpg"></img>
    <img src="/avatar?avatar_id={{character.key()}}"></img>
    
    
    
    因此,我的问题是:

  • 如何确定“/images”(这是文件夹?)或“img_id”是正确的语法

  • 我没有看到任何上传到本地主机的图像,对吗

  • 直接从像
    这样的文件夹调用图像不起作用…(在php中它起作用…)


  • 提前感谢,任何帮助都将不胜感激

    静态文件由基础结构而不是应用程序提供服务。在我看来,处理程序定义中有一个错误。。。它应该看起来更像(注意:上传:部分中没有前导/前导)


    然后,任何以gif、png或jpg结尾的url都将由应用程序引擎基础结构提供,而不是由您的应用程序处理程序提供。

    好吧,我发现我做错了,因为我没有添加图像处理程序

    所以


    这就解决了我的问题。

    对不起,您能为图像服务器添加代码吗?我没有看到一个,我想这是你的问题。它现在可以用于静态文件,但不能用于上传的文件。
    <img src="/images?img_id={{character.key()}}"></img>
    <img src="/images/header.jpg"></img>
    <img src="/avatar?avatar_id={{character.key()}}"></img>
    
    - url: /(.*\.(gif$|png$|jpg$))
      static_files: /\1
      upload: (.*\.(gif$|png$|jpg$))
    
    class ImageHandler(Handler):
        def get(self):
            character = db.get(self.request.get('img_id'))
            if character.avatar:
                self.response.headers['Content-Type'] = 'image/png'
                self.response.out.write(character.avatar)
            else:
                self.response.out.write("No image")