这次迭代是否必要?

时间:2011-04-23 00:10:34

标签: python google-app-engine

我对get_serving_url的使用是服务器端现在我想知道这是否可以在模板中完成而不是迭代服务器端?

class Ad(GeoModel,search.SearchableModel): 
    .......

class Image(db.Model):   #migrate to blobstore
    reference = db.ReferenceProperty(Ad, collection_name='matched_images', verbose_name="Title")
    primary_image = blobstore.BlobReferenceProperty() 
    .........

    class AdHandler(I18NHandler):
        def get(self, id):
            ad = Ad.get_by_id(long(id))
            image = ad.matched_images.get()
            url = ''
            if image:
                url = images.get_serving_url(str(image.primary_image.key()))
            if not ad:
                self.error(404)
                return
            imv = []
            L = {}
            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, 'ad':ad, 'image': image,
                                  'logout_url': users.create_logout_url('/'),}
                                 )

1 个答案:

答案 0 :(得分:2)

我建议您将图片网址存储在数据库中。这个url是静态的,每当你执行get_serving_url时,都会占用大量的CPU时间。当我这样做时,我看到自己的应用程序有了很大的改进。此外,通过这样做,您的初始问题将立即得到解决。