我在同一主题上看过类似的问题,这个问题是用Python编写一个非常简单的博客并在GAE上托管。如果我在其中一个答案中错过了解决方案,请道歉。
我根本看不到任何数据库条目。这是我的代码:
实体:
class Comment(db.Model):
name = db.StringProperty(required=True)
comment = db.TextProperty(required=True)
created = time.strftime("%d/%m/%Y")
主要处理者:
class MainPage(Handler):
def render_front(self, name="", comment="", error=""):
comments = db.GqlQuery("SELECT * FROM Comment ORDER BY created DESC")
self.render("front.html", name=name, comment=comment, error=error, comments=comments)
def get(self):
self.render_front()
def post(self):
name = self.request.get("name")
comment = self.request.get("comment")
if name and comment:
c = Comment(name=name, comment=comment)
c.put()
time.sleep(0.5)
self.redirect("/")
所以这将显示在HTML中:
{% for e in comments %}
<div class="comment">
<div class="comment-name">
{{e.name}}
</div>
<pre class="comment-content">
{{e.comment}}
<br>
on {{e.created}}
</pre>
</div>
{% endfor %}
问题是该程序似乎完全忽略了上面的阻止。我设法让它工作了一段时间,但我检查了很多次,看不出问题出在哪里。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:3)
有几种方法可以检查:
使用管理控制台查看您的数据存储区。你有记录吗?
您的日期时间属性是否正确存储?有关DS和日期时间的文档,请参阅此处:https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#DateTimeProperty
您是否将日期设为'dateTimeProperty'类型?请参阅此处的示例:developers.google.com/appengine/docs/python/ndb/queries另请参见此处:stackoverflow.com/questions/9700579/gql-select-by-date
尝试删除GQL中的ORDER BY子句。我想知道日期/时间变量是否有点时髦
尝试使用App Engine SDK在本地运行,并使用其中的日志查看行为。如果您对一切正常而感到高兴,可以将其上传到GAE。
不要使用模板引擎 - 现在只需在Python中完全循环 - 并且self.response.write东西。这将告诉您查询是否正常工作。
希望它适合你! :)