第 1 章:架构概述
Odoo遵循多层架构。多层架构是开发人员在开发过程当中面对复杂且易变的需求采取的一种以隔离控制为主的应对策略。每一层都可以单独部署。将整个项目自下而上的分为:数据持久(数据访问)层,逻辑(业务)层,UI(展现)层。
Odoo的展现层是HTML5、JavaScript和CSS的组合,逻辑层使用Python语言编写,数据持久层只支持将PostgreSQL作为 RDBMS。
为了完成教程,需要基本的HTML知识和中级的Python语言。
从 15.0 版本开始,Odoo 正在积极过渡到使用自己内部开发的OWL框架作为其表示层的一部分。遗留的 JavaScript 框架仍受支持,但随着时间的推移将被弃用。
模块的组成
Odoo中的所有内容都以模块开始和结束。
一个Odoo模块可以包含许多元素:
业务对象
业务对象被声明为 Python 类。定义的字段用于ORM层,这些类会自动映射到数据库。
对象视图
定义 UI 显示。
数据文件
声明模型数据的 XML 或 CSV 文件:视图或报表、配置数据(模块参数化、安全规则)等等。
Web 控制器
处理来自 Web 浏览器的请求。
静态 Web 数据
Web 界面或网站使用的图像、CSS 或 JavaScript 文件。
这些元素都不是必需的。某些模块只能添加数据文件(例如,特定于国家/地区的配置),而某些模块只能添加业务对象。在这个教程,我们将创建业务对象、对象视图和数据文件。
模块结构
每个模块都是模块目录中的一个目录。模块目录通过使用--addons-pat选择。
Odoo 模块由__manifest__.py文件声明。
__init__.py文件包含各种Python的导入说明 。
下面是一个简化的模块目录:
module
├── models
│ ├── *.py
│ └── __init__.py
├── data
│ └── *.xml
├── __init__.py
└── __manifest__.py
Odoo有两个版本:Odoo Enterprise(许可和共享源)和Odoo社区(开源)。除了支持或升级等服务外,企业版还提供额外的功能添加到Odoo中。
参考
https://www.odoo.com/documentation/master/developer/tutorials/server_framework_101/01_architecture.html
第1章:架构概述