首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何封装web2py业务逻辑?

如何封装web2py业务逻辑?
EN

Stack Overflow用户
提问于 2011-08-01 19:41:17
回答 1查看 841关注 0票数 4

几天前,我刚刚找到了web2py,并且一直在阅读文档和一些示例应用程序的源代码。我想开始用Python编写更多的程序。我对MVC的看法似乎有点偏离了他们的web2py社区。

在学习和使用PHP (和Kohana框架)之后,我已经习惯了瘦控制器- fat模型原理,其中所有的业务逻辑都放在模型中,控制器只做委托在模型上执行的方法,然后将数据传递到视图中进行呈现。但是,我看到的web2py应用程序中有99%有fat控制器(将所有业务逻辑都放在操作中),而且模型只不过是表/约束定义。

我很清楚我对模型的看法,我宁愿把业务逻辑放在模型中(因为可重用性和枯燥代码),但是我还没有在网上看到任何这样的代码,尽管公平地说,我还没有找到足够的应用程序。有人能给我指明正确的方向吗。

是明确的,我想让我的模型实际的类,并封装所有业务逻辑和数据库交互为显式方法。一些类似于..。

代码语言:javascript
复制
class Article(object):
    def get_article(self, id):
        # Retrieve article by id, using db instance
        pass
    def get_latest_articles(self, limit):
        # Retrieve latest articles
        pass
    def get_hot_articles(self, limit):
        # Retrieve hot articles, based on algorithm for "hot"
        pass
    def create_article(self, data):
        # Insert article
        pass
    def define_tables(self):
        # Define schema the web2py way
        pass

我还没找到正确的方法。

我在web2py上不是很好的排练,但我知道有很多特性。例如,DAL似乎是一个非常强大的特性,它与其他助手紧密集成在一起。我想知道,如上面所述,分裂我的业务逻辑是否会限制这些特性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-01 20:44:28

我认为不同之处在于web2py使用DAL (数据库抽象层)而不是ORM。您可能会发现这一解释很有用。正如它所指出的,在某些情况下,计算字段或虚拟字段可以做您想做的事情。另外,在示例类中定义的一些方法将是相当简单的DAL语句,可能不值得编写方法。

当然,如果您愿意,您可以在您的模型(或模块)中定义类和函数,只需从控制器中调用它们--任何对您最合适的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6903515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档