扫码阅读
手机扫码阅读

odoo框架源码研读一:前后端交互

943 2023-09-06

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:odoo框架源码研读一:前后端交互
文章来源:
神州数码云基地
扫码关注公众号

1 源码文件结构

Odoo 14.0 源码具有一定的文件结构,其中包括但不限于文档、启动脚本、配置文件和模块等。特别地,doc文件夹包含项目帮助文档;odoo-bin文件作为Odoo的启动脚本,搭配odoo.conf配置文件用于启动项目;odoo文件夹包含了项目的底层模块和基础父类;而addons文件夹则包含了Odoo的基础业务模块,如CRM和Sales。

2 框架结构

经过六个月的Odoo学习和实战,作者对前后端交互有了深刻理解。

2.1 前后端交互

Odoo的前端基础框架和后台基础模块交互的API封装在addons下的web模块中。Controller控制器通过继承基类和http.route装饰器,管理前后端交互,暴露API接口。Controller的命名反映了对应的功能模块。

2.1.1 Controller控制器

Controller控制器的http.route装饰器定义了请求的分发映射、请求类型、认证方法类型、请求类型、cors指令值和CSRF防御的启用。

2.1.2 Dispatcher分发模块

请求处理流程从Root应用开始,通过处理原始request对象、设置上下文环境至分发请求。数据库选择通过db_filter参数进行,影响系统登录流程。请求被封装成HttpRequestJsonRequest后,根据数据库信息进行分发,最终由IrHttp映射器调度。

IrHttp在进行调度时会匹配路由信息、权限校验和封装requestHandler。然后,HttpRequest/JsonRequest的dispatch方法会通过WebController类调用相应的controller接口。HttpRequest和JsonRequest都可以处理异常和分发请求,但HttpRequest额外具备处理cors、渲染html和404请求的功能,而JsonRequest则封装了json_response的功能。

总结,本篇文章介绍了Odoo 14.0的源码结构和框架结构,特别强调了前后端交互的机制和请求分发的细节。下一篇文章将介绍Odoo的ORM系统。

想要了解更多内容?

查看原文:odoo框架源码研读一:前后端交互
文章来源:
神州数码云基地
扫码关注公众号