我刚开始学习 Python,我正在慢慢掌握它,但我遇到了一个问题。
我正在尝试使用 Google 的 App Launcher SDK 制作一个包含文章的简单网站。
现在,当我按照 Google 网站上的小指南操作时一切正常,但现在我想创建另一个数据库:
class Articles(db.Model):
title = db.TextProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
这里没有错误。 然后我尝试进行查询,获取所有信息并将其发布到模板中:
class Articles(webapp.RequestHandler):
def get(self):
articles_query = Articles.all().order('-date')
articles = articles_query.fetch(10)
template_values = {'articles': articles}
path = os.path.join(os.path.dirname(__file__), 'articles.html')
self.response.out.write(template.render(path, template_values))
这里我收到一个错误:
line 45, in get
articles_query = Articles.all().order('-date')
AttributeError: type object 'Articles' has no attribute 'all'
我基本上是从 Google 的教程中复制查询,只是更改变量,但它不起作用。
有什么想法吗?
请您参考如下方法:
这并不是说您已经定义了两个数据库,而是您已经尝试创建两个名为 Articles 的类。 Python 不能同时将它们都记在脑子里,所以一旦你创建了 class Articles(webapp.RequestHandler),它就替换了 class Articles(db.Model)。
webapp.RequestHandler 没有 all() 方法,并且您没有在第二个 Articles 类中定义一个方法。这就是为什么您会遇到特定错误的原因。
您应该为您的类使用不同的名称。
