网页控制器 Web Controllers

网页控制器 Web Controllers

控制器

控制器需要像模块一样提供扩展,但是不能使用相同的机制,因为有时候前提条件(附有模块的数据库)尚不可用(例如还未创建或者选择数据库)。因此,控制器具有自己的扩展机制,这不同于模型的机制:控制器通常通过*Controller*继承,通过*route()*装饰器定义路由:

class MyController (odoo.http.Controller):#继承controller定义控制器

  @route'/some_url',auth'public')

#装饰器路由访问方法,并指明访问方式:公开还是需要用户登陆

  def handler(self):

     return stuff()

为了覆盖控制器,请从其类继承并覆盖相关的方法,并在必要时公开它们:

classExtension(MyController):

@route()

def handler (self):

​    do_before()

​    return super(Extension,self).handler()

必须使用route()装饰器才能使方法(和路径)可见:如果在未装饰的情况下重新定义了该方法,则该方法会成为“未发布”状态。组合所有方法的装饰器,如果覆盖方法的装饰器没有参数,则所有先前的装饰器都将保留,任何提供的参数将覆盖先前定义的装饰器。

lass Restrict(MyController):

  @route(auth 'user')

  def handler(self):

​    return super(Restrict,self).handler()

肖巧龙

posted @   中亿丰数字科技  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示