我是python和pylon的新手,尽管有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:“模块”对象不可调用


     BlogModel.getTitles()结果
     AttributeError:“模块”对象没有属性“ getTitles”

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

谢谢

最佳答案

x = BlogModel.BlogModel()


或者,更详细地说:

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

代替:

from billion.model import BlogModel


您可以使用:

from billion.model.BlogModel import BlogModel


然后你的

x = BlogModel()


会工作。

关于python - 导入模型/库类并从 Controller 调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1268432/

10-10 23:52