Skip to main content
 首页 » 编程设计

python之不能 "define"两个数据库在同一个Python文件中吗

2025年05月04日10虾米哥

我刚开始学习 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 类中定义一个方法。这就是为什么您会遇到特定错误的原因。

您应该为您的类使用不同的名称。