导入Model / Lib类并从控制器调用

时间:2009-08-12 20:07:24

标签: python model-view-controller pylons

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

我正在尝试编写一个模型类,它将充当我对数据库(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'对象不可调用

另外      BlogModel.getTitles()导致      AttributeError:'module'对象没有属性'getTitles'

这是否包括我上课的方式?有人可以告诉我最好的方法吗?

感谢

1 个答案:

答案 0 :(得分:2)

x = BlogModel.BlogModel()

或者,更详细地说:

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

而不是:

from billion.model import BlogModel

您可以使用:

from billion.model.BlogModel import BlogModel

然后你的

x = BlogModel()

会起作用。