程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Python中显示Blob图片(App Engine)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在Python中显示Blob图片(App ENGIne)?

开发过程中遇到在Python中显示Blob图片(App ENGIne)的问题如何解决?下面主要结合日常开发的经验,给出你关于在Python中显示Blob图片(App ENGIne)的解决方法建议,希望对你解决在Python中显示Blob图片(App ENGIne)有所启发或帮助;

首先,我认为您正在将图像密钥和图像二进制数据混合在一起。

您应该将图像密钥(字符串)写入模板:

 <img src="/disp?key={{image_key}}" />

即,如果您只是将image.key()传递给模板,则最终的HTML应该如下所示:

 <img src="/disp?key=AC3CK3333KCCK2K213" />

您可以将其视为一个两步过程。您呈现您的模板。用户浏览器呈现HTML并获取您的图像处理程序。然后,图像处理程序发送二进制数据。

(顺便说一句,我的印象是您使用<img ... /><img ...></img>不关闭HTML标签<img .../></img>

在图像处理程序disp_image中,您应该返回图像的二进制数据。看来您的第一个条件还可以,但是我认为您的else条件将仅返回文本“ /static/unkNown.gif”,而不是gif文件的实际二进制数据。

    else:
        self.response.headers['Content-Type'] = "image/png"
        return self.response.out.write("/static/unkNown.gif")

您应该将unkNown.gif存储在数据存储区中,并通过键引用它,或者您应该将"/static/unkNown.gif"网址写到模板中以代替"/disp?key=..."

最后,最简单的测试图像处理程序是否正常的方法是,当您插入<domain>/disp?key=...浏览器URL栏时,它将加载所需的图像。

解决方法

我无法将图像显示在页面上。我可以存储它

这些是处理程序:

class disp_image(webapp.requestHandler):
    def get(self):
        key = self.request.get('key')
        image = Images.get(key)
        if image:
            self.response.headers['Content-Type'] = "image/png"
            return self.response.out.write(images.imagE)
        else:
            self.response.headers['Content-Type'] = "image/png"
            return self.response.out.write("/static/unknown.gif")

class Profile(MainHandler):
    def get(self):      
        if self.user:
            self.render('profile.html',username = self.user.name,email = self.user.email,first_name = self.user.first_name,last_name = self.user.last_name,country = self.user.country,prov_state = self.user.prov_state,city_town = self.user.city_town)
        else:
            self.redirect('/register')

class Change_Profile_Image(MainHandler):
    def get(self):
        if self.user:
            self.render('change_profile_image.html',firstname=self.user.first_name)
        else:
            self.render('change_profile_image.html')

    def post(self):
        images = Images()
        imageupl = self.request.get('img')
        images.image = db.blob(imageupl)
        images.put()
        self.redirect('/profile')

db的内容如下:

class Images(db.Model):
    image = db.blobProperty()

class User(db.Model):
    name = db.StringProperty(required=TruE)
    pw_hash = db.StringProperty(required=TruE)
    email = db.StringProperty(required=TruE)
    first_name = db.StringProperty()
    last_name = db.StringProperty()
    country = db.StringProperty()
    prov_state = db.StringProperty()
    city_town= db.StringProperty()
    clan= db.StringProperty()
    handle= db.StringProperty()

表格:

<form enctype="multipart/form-data" method="post">
       <input type="file" name="img" />
</form>

我的模板替换代码:

<img src="/disp?key={{imagE}}" /></img>

大佬总结

以上是大佬教程为你收集整理的在Python中显示Blob图片(App Engine)全部内容,希望文章能够帮你解决在Python中显示Blob图片(App Engine)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。