Odoo 中的 Controller
来自 Odoo处理HTTP请求的接口用的Contoller类,封装于web模块中。
---------------------------------------------------------------
RequestHandler:
1. replace_request_password(args):用*替换掉request中的密码字符。
2. dispatch_rpc(service_name, method, params):处理RPC请求。service_name的值可取common,db,object,report四种。
3. local_redirect(path, query=None, keep_hash=False, forward_debug=True, code=303):重定向到一个新url。
4. redirect_with_hash(url, code=303):带locathion.hash值的重定向方法。
---------------------------------------------------------------
WebRequest:
Odoo Web请求的父对象
属性:httprequest,httpresponse,httpsession,env,context,session,lang,cr,debug,registry_cr,session_id,registry,db
---------------------------------------------------------------
route装饰器:封装了处理web request路由的处理方法,被封装的方法必须为Controller的子类方法。
route(route=None, **kw):
参数说明:
route:字符或数组,映射URL中对应的路径。
type:request的类型,'http'或'json'。
auth: 认证方法,可以为以下值:'user','admin','none'.
methods: http请求方法,默认为都允许。(GET,POST)
cors:跨域指示值。
--------------------------------------------------------------
JsonRequest:WebRequest子类,处理JSON-RPC(http://wiki.geekdream.com/Specification/json-rpc_2.0.html)的类。
--------------------------------------------------------------
HttpRequest:WebRequest子类,处理HTTP请求并响应。
1.make_response:处理非HTML响应或自定义的headers和cookies
2.render:显示QWeb模板
3.not_found:404
例子1:自定义路径/px 返回字符串“Hello Odoo".
import openerp
from openerp import http class px(openerp.addons.web.controllers.main.Home): @http.route(['/px'],type='http',auth='None')
def px2(self,*args,**kargs):
return 'Hello Odoo!'
例子2:自定义路径/px 重定向到网址 bing.com
import openerp
from openerp import http
from openerp.http import local_redirect_with_hash class px(openerp.addons.web.controllers.main.Home): @http.route(['/px'],type='http',auth='public')
def px2(self,*args,**kargs):
return local_redirect_with_hash('http://www.bing.com')
Odoo 中的 Controller的更多相关文章
- Python odoo中嵌入html简单的分页功能
在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染 html页面分页内容,这里写了判断逻辑 <!-- 分页 -->< ...
- Odoo中的五种Action详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826232.html Odoo中的五种action都是继承自ir.actions.actions模型实现的 ...
- ASP.NET Core MVC 中的 [Controller] 和 [NonController]
前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...
- springmvc中的controller是单例的
今天发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量a,所有请求到同一个controller时,使用的a变量是共用的,即若是某个请求中修改了这个变 ...
- MVC中的Controller
Controller是MVC模式中的三个核心元素之一. MVC模式中的Controller主要负责响应用户的输入, 并在响应时修改Model. MVC提供的是方法调用的结果, 而不是动态生成的页面. ...
- 利用Python的三元表达式解决Odoo中工资条中城镇、农村保险的问题
Python中没有像C#中有三元表达式 A?B:C 但在python中可以通过 A if condition else B 的方式来达到同样的效果. 例如 : 1 if True else 0 输出 ...
- (19)odoo中的javascript
-----------更新日期15:17 2016-02-16 星期二-----------* 用到的js库 我们可以打开 addons/web/views/webclient_template. ...
- 如何将 Area 中的 Controller 放到独立的程序集?
目录 背景如何将 Area 中的 Controller 放到独立的程序集?备注 背景返回目录 本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式.执行模型和关键扩展点,这里主要说一下如何使用 ...
- Odoo 中使用 celery 实现高性能异步任务队列
详见:http://www.oejia.net/blog/2018/07/09/odoo_task_queue.html 概述 在 odoo 中可以用自带的cron实现异步任务,这个cron基于多线程 ...
随机推荐
- PHP中include和require的区别详解
1.概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说, ...
- mybatis一级缓存和二级缓存
1.一级缓存:session级别 执行以下操作之后一级缓存消失: 1)执行了session.clearCache(); 2)执行了CUD操作后 3)执行了session.close() 2.二级缓存: ...
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
前言:前段时间写了个小程序,想分享给好友看看,可所以资源都放在Debug文件夹下,整个文件夹发给人家这也太……,为了显得稍微专业一点,想把它们打包一个EXE文件执行,因为我见到到这样的程序,直接一个E ...
- Nhibernate对应关系参数介绍
一.多对一关联映配置介绍 <many-to-one name="PropertyName" 属性名 column="column_name" 数据库字段名 ...
- yum提示This system is not registered with RHN.RHN support will be disabled.
[root@cactiez ~]# yum install mlocateLoading "security" pluginLoading "rhnplugin" ...
- 【解决】SharePoint 2013 当鼠标悬停在用户名称上时页面会崩溃
参考下面文章,此问题是由于IE中的Office插件版本不正确所致,只需在 控制面板 > 程序和功能 中修复 Office 的安装即可. http://sympmarc.com/2013/11/2 ...
- No.7__C#_Final
实习期的完结,暂时告一个段落了 现在是周五的晚上十点三刻,洗完澡后,决定先写一点.今天是实习的最后一天,平平淡淡的完成了实习作业.本以为周五会像往常那样迫不及待的离开,迎接自己的 周末.可是,今天下午 ...
- 动手学servlet(六) 过滤器和监听器
过滤器(Filter) 过滤器是在客户端和请求资源之间,起一个过滤的作用,举个例子,比如我们要请求admin文件夹下的index.jsp这个页面,那么我们可以用一个过滤器,判断登录用户是不是管理员 ...
- [python实现设计模式]-1. 单例模式
设计模式中,最简单的一个就是 “单例模式”, 那么首先,就实现一下单例模式. 那么根据个人的理解,很快就写出第一版. # -*- coding: utf-8 -*- class Singleton(o ...
- GPUImage实现摄像头暂停
GPUImage相信很多开发者都用过,其本身也是十分简单易用,因此对于GPUImage的基本用法不再赘述. 最近在使用GPUImage时要实现摄像时暂停和继续的功能,但GPUImage本身并没有提供相 ...