为什么我的图片没有出现?

时间:2011-04-29 14:15:47

标签: python google-app-engine

嗨,我想知道为什么我的图像没有出现。我认为它既作为blobproperty存储又存储在blobstore中,因为它看起来像列表页面上的缩略图。未显示图片的页面地址为http://www.koolbusiness.com/servead/4125209

同一图片中的缩略图显示在列表http://www.koolbusiness.com/li

我的一些显示图片的模板代码是:

{% if ad.matched_images.get %} <table><tr>
        <td>

            <div class="ad_pict" id="display_image"><img src="{{url}}" alt="" onload="show_hidden_elements();return false;"></div>

       </td> <td>

{% ifequal len 1 %}
{% else %}
          {% for im in imv %}

            <div id="thumb0" class="ad_thumb ad_border_solid_black" onclick="showLargeImage('{{im}}');thumbnailBorder(this, 5 )">
                <table class="clean_table shadowed_thumb" cellpadding="0" cellspacing="0">
                    <tbody>
                        <tr>
                            <td><img src="/_/img/thumb_left_top.gif"></td>
                            <td class="top_middle" align="left" valign="bottom"></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td class="middle_left"></td>
                            <td><img src="{{im}}=s120" alt="">

</td>
                            <td class="single_middle_right" valign="top"><img src="/_/img/thumb_single_right_top.gif"></td>
                        </tr> 
                        <tr>
                            <td></td>
                            <td class="single_bottom_center" valign="top"><img src="/_/img/thumb_single_left_bottom.gif"></td>
                            <td valign="top"><img src="/_/img/thumb_single_right_bottom.gif"></td>
                        </tr>
                    </tbody>
                </table>
            </div>

            {% endfor %}

{% endifequal %}

用于加载模板的服务器端python的Ans是:

class AdHandler(I18NHandler):
    def get(self, id):
        ad = Ad.get_by_id(long(id))
        if not ad:
            self.error(404)
            return
        image = ad.matched_images.get()
        url=''
        if image:
            if image.primary_image:
                url = images.get_serving_url(str(image.primary_image.key()))

        imv = []
        table=''
        for i in ad.matched_images:
            if i.primary_image:
              i1=images.get_serving_url(str(i.primary_image.key()))
              imv.append(i1)

        self.render_template("imageinfo.html", {'url':url,
        'imv':imv,'len':len(imv),
        'ad':ad,
        'image': image,
        'logout_url': users.create_logout_url('/'),
    })

如果我使用旧版本的页面,图像确实出现,所以很明显我在数据库中有它,我刚刚写了一个bug,需要构建我从blobproperty到blobstore的迁移:{{3 }}

由于图像出现在后面的网址中,我知道它就在那里,这只是我的代码中某个我无法重现的错误,导致图像无法显示。谢谢你的帮助

1 个答案:

答案 0 :(得分:4)

我猜这两个if语句中的一个正在评估为false:

    if image:
        if image.primary_image:
            url = images.get_serving_url(str(image.primary_image.key()))

如果您实际调用的是get_serving_url,则会获得有效的服务URL或例外。相反,url仍然有它的起始值,一个空字符串。