如何从 Google App Engine 实体在客户端呈现 JSON
How to render JSON on client-side from Google App Engine Entity
对于从 Google App Engine 实体在客户端呈现 JSON 对象的帮助,我将不胜感激。
这是我所有的相关代码:
def render_str(template, **params):
t = jinja_env.get_template(template)
return t.render(params)
class BlogHandler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
params['user'] = self.user
return render_str(template, **params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
class Post(ndb.Model):
subject = ndb.TextProperty(required = True)
created = ndb.DateTimeProperty(auto_now_add = True)
startdate = ndb.DateTimeProperty()
enddate = ndb.DateTimeProperty()
class PostPage(BlogHandler):
def get(self, post_id):
key = ndb.Key('Post', int(post_id), parent=blog_key())
post = key.get()
postdict = post.to_dict()
postdict['startdate'] = postdict['startdate'].isoformat()
self.render("permalink.html", postdict = postdict)
在模板页面的脚本标签中,我包含
<script>
var jsonobject = JSON.parse({{ postdict['startdate']}});
var jsonobject1 = new Date(jsonobject);
</script>
我走的路对吗?我想最终在客户端使用 datetime 对象来实现一些 Jquery 功能。
如能为我指明正确的方向,我们将不胜感激。
您的代码有很多问题。首先,一旦将 post
转换为字典 postdict
,就无法使用点符号来引用元素。您必须使用字典引用 postdict['startdate']
来引用 startdate
元素。
接下来,我在以 JSON 格式存储日期时使用 isoformat()
函数:
postdict['startdate'] = postdict['startdate'].isoformat()
这样可以更轻松地转换为 Javascript 日期对象:
<script>
var jsonobject = JSON.parse({{ postdict.jsonobject}});
jsonobject[0].y = new Date(jsonobject[0].y);
</script>
对于从 Google App Engine 实体在客户端呈现 JSON 对象的帮助,我将不胜感激。
这是我所有的相关代码:
def render_str(template, **params):
t = jinja_env.get_template(template)
return t.render(params)
class BlogHandler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
params['user'] = self.user
return render_str(template, **params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
class Post(ndb.Model):
subject = ndb.TextProperty(required = True)
created = ndb.DateTimeProperty(auto_now_add = True)
startdate = ndb.DateTimeProperty()
enddate = ndb.DateTimeProperty()
class PostPage(BlogHandler):
def get(self, post_id):
key = ndb.Key('Post', int(post_id), parent=blog_key())
post = key.get()
postdict = post.to_dict()
postdict['startdate'] = postdict['startdate'].isoformat()
self.render("permalink.html", postdict = postdict)
在模板页面的脚本标签中,我包含
<script>
var jsonobject = JSON.parse({{ postdict['startdate']}});
var jsonobject1 = new Date(jsonobject);
</script>
我走的路对吗?我想最终在客户端使用 datetime 对象来实现一些 Jquery 功能。
如能为我指明正确的方向,我们将不胜感激。
您的代码有很多问题。首先,一旦将 post
转换为字典 postdict
,就无法使用点符号来引用元素。您必须使用字典引用 postdict['startdate']
来引用 startdate
元素。
接下来,我在以 JSON 格式存储日期时使用 isoformat()
函数:
postdict['startdate'] = postdict['startdate'].isoformat()
这样可以更轻松地转换为 Javascript 日期对象:
<script>
var jsonobject = JSON.parse({{ postdict.jsonobject}});
jsonobject[0].y = new Date(jsonobject[0].y);
</script>