Odoo Web前端界面详解 - 1

近期准备对odoo web模块进行一些整理,大致的说说odoo的前端界面是如何生成的,又是如何与后端交互,主要着重点就是odoo的js这块的东西,由于odoo11的js代码已经有了较大的改变,所以就以odoo11来分析吧。

为了简单叙述,暂时不考虑多个db的情况(主要是懒得说没有db或者多个db实例的情况)当odoo指定数据库开启服务时(也就是odoo-bin -d <some_db_name> ),我们使用chrome的隐身模式访问http://127.0.0.1:8069 ,此时打开chrome的开发者模式,查看Network可以看到,请求和相应如下

这里写图片描述

1. 输入http://127.0.0.1:8069/之后发生了什么

192.168.56.102, 这个是我的虚机ip地址,返回响应是200,可以通过源代码中, 我们看到

# web/controllers/main.py:435

@http.route('/', type='http', auth='none')
def index(self, s_action=None, db=None, **kwargs):
        return http.local_redirect('/web', query=request.params, keep_hash=True)

按照代码命名来看,应该返回一个30x的redirect响应,为什么实际返回的确是200的响应头呢?
继续查看代码,可以发现就是keep_hash=True 这个参数所引起的,在local_redirect 函数中由于keep_hash,

# odoo/http.py:156
def redirect_with_hash(url, code=303):
    if request.httprequest.user_agent.browser in ('firefox',):
        return werkzeug.utils.redirect(url, code)
    url = pycompat.to_text(url)
    if urls.url_parse(url, scheme='http').scheme not in ('http', 'https'):
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值