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
参数进行,影响系统登录流程。请求被封装成HttpRequest
或JsonRequest
后,根据数据库信息进行分发,最终由IrHttp
映射器调度。
IrHttp
在进行调度时会匹配路由信息、权限校验和封装requestHandler。然后,HttpRequest/JsonRequest
的dispatch方法会通过WebController类调用相应的controller接口。HttpRequest和JsonRequest都可以处理异常和分发请求,但HttpRequest额外具备处理cors、渲染html和404请求的功能,而JsonRequest则封装了json_response的功能。
总结,本篇文章介绍了Odoo 14.0的源码结构和框架结构,特别强调了前后端交互的机制和请求分发的细节。下一篇文章将介绍Odoo的ORM系统。
想要了解更多内容?