来自  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的更多相关文章

  1. Python odoo中嵌入html简单的分页功能

    在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染 html页面分页内容,这里写了判断逻辑 <!-- 分页 -->< ...

  2. Odoo中的五种Action详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826232.html Odoo中的五种action都是继承自ir.actions.actions模型实现的 ...

  3. ASP.NET Core MVC 中的 [Controller] 和 [NonController]

    前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...

  4. springmvc中的controller是单例的

    今天发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量a,所有请求到同一个controller时,使用的a变量是共用的,即若是某个请求中修改了这个变 ...

  5. MVC中的Controller

    Controller是MVC模式中的三个核心元素之一. MVC模式中的Controller主要负责响应用户的输入, 并在响应时修改Model. MVC提供的是方法调用的结果, 而不是动态生成的页面. ...

  6. 利用Python的三元表达式解决Odoo中工资条中城镇、农村保险的问题

    Python中没有像C#中有三元表达式 A?B:C 但在python中可以通过 A if condition else B 的方式来达到同样的效果. 例如 : 1 if True else 0 输出 ...

  7. (19)odoo中的javascript

    -----------更新日期15:17 2016-02-16 星期二-----------* 用到的js库   我们可以打开 addons/web/views/webclient_template. ...

  8. 如何将 Area 中的 Controller 放到独立的程序集?

    目录 背景如何将 Area 中的 Controller 放到独立的程序集?备注 背景返回目录 本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式.执行模型和关键扩展点,这里主要说一下如何使用 ...

  9. Odoo 中使用 celery 实现高性能异步任务队列

    详见:http://www.oejia.net/blog/2018/07/09/odoo_task_queue.html 概述 在 odoo 中可以用自带的cron实现异步任务,这个cron基于多线程 ...

随机推荐

  1. 用delphi实现rar文件的解压的方法

    http://blog.csdn.net/ad_home/article/details/2818936 准备工作     下载winrar提供的动态链接库unrar.dll     http://w ...

  2. StackPanel在增加控件的问题

    今天遇到这样一个问题,就是我做了一个自定义控件.然后加到StackPanel中, <StackPanel Height="676" HorizontalAlignment=& ...

  3. ADC测试matlab代码

    前面有做过ADC性能测试,测试方式是先使用ADC采集一个单频信号,然后利用matlab进行性能分析. 下面把matlab分析的代码记录下来: %The following program code p ...

  4. openlayers中实现自定冒泡的效果

    自定义的Openlayers.Popup.FreshCloud继承自Openlayers.Popup.Framed,实现了比较简洁的冒泡效果,详细代码如下 /** * Class: OpenLayer ...

  5. W5200移植W5500驱动教程

    说明,移植例程为我按照这个教程移植的例程,测试通过.工程模板为我经常使用的一个w5500模板,可以在里面直接添加文件编程.1. 将driver文件夹中W5500文件夹和所有.c文件复制到工程/sour ...

  6. 欧洲宇航局(ESA)的协同设计室(CDF)

    官方网站:http://www.esa.int/SPECIALS/CDF/

  7. MySQL按照汉字的拼音排序

    按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...

  8. backup2

    /// <summary> /// 先在窗体上添加LicenceControl控件 /// Enable 3D analysis /// </summary> public v ...

  9. ue4 c++ 接口

    使用UE4接口比起普通的高级语言,要多做很多工作,是因为要兼容蓝图的使用,有一些小坑需要注意,开始吧. 1.新建接口类 打开UE4编辑器,与往常一样,新建C++类,然后选择Object继承,然后取名字 ...

  10. template.js遍历对象的写法

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...