1

我是 python 和 pylons 的新手,虽然在 PHP 方面有经验。

我正在尝试编写一个模型类,它将充当我对数据库(couchdb)的数据访问。我的问题很简单

我的模型看起来像这样,名为 models/BlogModel.py

from couchdb import *

class BlogModel:

    def getTitles(self):
        # code to get titles here

    def saveTitle(self):
       # code to save title here

我的控制器叫做 controllers/main.py

import logging

from pylons import request, response, session, tmpl_context as c
from pylons.controllers.util import abort, redirect_to

from billion.lib.base import BaseController, render

log = logging.getLogger(__name__)

from billion.model import BlogModel

class MainController(BaseController):

    def index(self):
        return render('/main.mako') 

在我的索引操作中,如何访问 BlogModel 中的 getTitles() 方法?

我试过了

x = BlogModel()
x.getTitles()

但我得到 TypeError: 'module' object is not callable

BlogModel.getTitles() 也会导致 AttributeError: 'module' object has no attribute 'getTitles'

这取决于我上课的方式吗?有人能告诉我最好的方法吗?

谢谢

4

1 回答 1

2
x = BlogModel.BlogModel()

或者,更详细地说:

导入后,您的命名空间中有一个名为“BlogModel”的对象。该对象是 BlogModel 模块。(模块名称来自文件名。)在该模块内部,有一个名为“BlogModel”的类对象,这就是您所追求的。(类名来自您编写的源代码。)

代替:

from billion.model import BlogModel

你可以使用:

from billion.model.BlogModel import BlogModel

那么你的

x = BlogModel()

会工作。

于 2009-08-12T20:13:46.310 回答