我在GAE上使用Tornado框架(Python)。我仍然对整个MVC概念和GAE都不熟悉......而且还有一段时间试图弄清楚如何做到这一点。
我有一个表(模型)帖子,其中包含字段user,text,creation_date。
我拉取代码中的所有帖子,然后将其发送到模板。我想格式化creation_date字段,使其格式更好一些。像M-d-Y这样的东西。我知道我使用strptime或strftime格式化creation_date。但在将帖子发送到模板之前,我不确定该怎么做。
以下是我用来获取帖子并将其发送到模板的内容......
class HomeHandler(BaseHandler):
def get(self):
posts = Post.all()
posts.order("-creation_date")
self.render('home.html', posts=posts)
更新:
posts = Post.all().order("-creation_date").fetch(50)
posts = [{'text': post.text} for post in posts]
for post in posts:
print post.text
我收到错误消息:
AttributeError:'dict'对象没有属性'text'
答案 0 :(得分:2)
假设您正在使用Tornado的template模块,它包含日期时间模块。我没有使用过Tornado的模板模块,但您应该可以使用:
entity.datetime_property.strftime('%m-%d-%y')
如果您想在将模型发送到模板之前处理模型,请尝试以下操作:
class HomeHandler(BaseHandler):
def get(self):
posts = Post.all().order("-creation_date").fetch(50)
posts = [{'author': post.author,
'subject': post.subject,
'date': post.date} for post in posts]
self.render('home.html', posts=posts)
在您的模板中,帖子将是包含作者,主题和日期字段的词典列表。
使用fetch来限制您返回的帖子数量;它可以通过一次抓取(最多)50个实体来提高性能,而不是以较小的批次抓取它们。