使用Python,GAE和Tipfy,无法传递db.key作为图像检索的参数

时间:2011-03-06 10:35:35

标签: python google-app-engine tipfy

好的,所以我正在玩tipfy,制作一个简单的照片库。我有一个使用webbapp的工作解决方案,这是我的模板,browse.htm,在两个例子中保持不变:

{% for pic in photo_list %}
<tr>
  <td><img src='getPic?img_id={{ pic.key }} '></img></td>
  <td>{{ pic.description }}</td>
  <td>{{ pic.date }}</td>
</tr>

这是我的databsemodel,也是同样的

# This is the datamodell for the photos
class dbPhotos(db.Model):
  pic = db.BlobProperty() # The photo itself
  description = db.StringProperty(multiline=True) # an optional description to each photo from the uploader
  date = db.DateTimeProperty(auto_now_add=True)   # date and time of upload

所以,使用webapp,我的脚本是:

# the handler for the gallery page
class BrowseHandler(webapp.RequestHandler):
  def get(self):
    que = db.Query(dbPhotos)
    photos = que.fetch(limit=100)
    outstr = template.render('browse.htm', {'photo_list': photos})
    handler.response.out.write(outstr)

# serve pics to template
class getPicHandler(webapp.RequestHandler):
  def get(self):
    userphoto = db.get(self.request.get("img_id"))
    self.response.headers['Content-Type'] = "image/png"
    self.response.out.write(userphoto.pic)

所以,这完美无缺。现在,尝试使用tipfy,我做:

# the handler for the browse-page
class browseHandler(RequestHandler):
def get(self):
    que = db.Query(dbPhotos)
    photos = que.fetch(limit=100)
    return render_response('browse.ji', photo_list=photos)

# serve pic to view
class getPicHandler(RequestHandler):
def get(self):
    id = self.request.args.get("img_id")
    userphoto = db.get(id)
    return Response(userphoto.pic, mimetype='image/png')

现在,最后一个例子并不完美。 它会获取所有评论和日期并正确显示,但无图片

我很坚持这一点,欢迎任何意见。

1 个答案:

答案 0 :(得分:1)

所以,我设法让它工作,解决方案是从

更改模板
{% for pic in photo_list %}
  <tr>
  <td><img src='getPic?img_id={{ pic.key }} '></img></td>

{% for pic in photo_list %}
  <tr>
  <td><img src='getPic?img_id={{ pic.key() }} '></img></td>

Anoyone非常欢迎评论为什么这是解决方案