返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>全球排名第一的免费开源ERPOdoo快速开发平台开发入门

理解Odoo结构中的各个层以及我们要使用的各类型组件的作用大有裨益。下面我们先总览下Odoo应用结构,然后把应用开发解构为对应组件。

然后Odoo发布有两个版本的定期更新:社区版和企业版,我们应了解两者之前的差别以及大版本发布对开发和部署所带来的变化。首先来看看Odoo的应用结构:

Odoo遵循多层结构,即前述的数据层、逻辑层和展示层:

数据层是很底端一层,负责数据持久化存储,Odoo借助PostgreSQL来实现。Odoo出于设计考虑仅支持PostgreSQL数据库,而不支持MySQL这一类数据库(有第三方应用可集成MySQL)。文件附件、图片一类的二进制文件通常存储在一个称为filestore(目录)的文件系统中。

“小贴士:也就是说Odoo实例的完整备份需包含数据库和filestore的拷贝。”

逻辑层负责与数据层的所有交互,并由Odoo服务完成。通常,底端数据库不应通过这一层获取,只有这样才能保证权限控制和数据一致性。在Odoo的核心代码中包含供这一接口使用的ORM(对象关系映射Object-relationalMapping)引擎。ORM提供插件模块与数据交互的API。

比如像客户和供给商这样的partner数据实体,是通过模型的ORM体现的。这一模型是一个Python对象,支持多种交互方法:create()方法用于创建新的伙伴记录,read()方法用于查询已有记录和对应数据。通用方法可在特定模型中实现指定业务逻辑,如create()方法可以设置默认值或强化验证规则,read()方法可支持一些自动计算字段或根据执行操作的用户来实施权限控制。

展示层用于展示数据并与用户交互,通过客户端实现用户体验。客户端与ORMAPI交互来读、写、验证或执行其它操作,通过RPC调用ORMAPI方法。这些操作发往Odoo服务器端操作,然后结果发送回客户端做进一步处理。

对于展示层,Odoo自带全面功能的web客户端。该客户端支持所有业务应用所需功能:登录会话、导航菜单、数据列表、表单等等。全局展示不会像前端工程师所认为的那样可深度定制,但易于创建功能性和连贯的用户体验。配套的展示层包含网站框架,可像其它CMS框架一样灵活地创建网页,当然需要额外的操作和web相关知识。网站框架支持通过web控制器实现代码来展示特定逻辑,而与模型内在逻辑进行区隔。前端工程师不会有什么操作上的障碍。

Odoo服务端API非常开放,包含所有服务端功能。Web客户端使用的API与其它应用的API并无不同。因此,其它的客户端实现均可做到,并且可以在任何平台上使用任意编程语言进行实现。可以创建桌面和移动端应用来提供不同用户界面,这充分利用了Odoo为业务逻辑和数据持久性而生的数据和逻辑层。

Odoo是这款软件的名称,同时也是发布软件的公司名称。Odoo采取核心开源的业务模式,社区版(CE)完全免费开源,而企业版(EE)则是一款付费产品。社区版提供了全部的框架功能和大多数与Odoo捆绑的业务应用基础功能。Odoo采取LGPL开源协议,答应在开源模块之上添加专属扩展。企业版建立在社区版基础之上,包含社区版所有功能和额外的独有功能。值得一提的是企业版带有一个移动端优化的用户界面,两个版本的用户界面底层完全相同。Odoo在线SaaS服务使用的是企业版,会部署一些企业版大版本发布之后的中间版本。

在写本文时,Odoo的稳定版本号是12,在GitHub上的分支为12.0,这也是本系列文章所采用的版本。近年来Odoo的大版本都是按年发布,Odoo12是在2021年10月份的Odoo体验大会上发布的。官方支持很近的三个稳定版本,在12.0发布时,官方仍然维护11.0和10.0两个版本,而停止对9.0的支持,也就是不再对bug和安全漏洞进行修复。

应当注重Odoo不同大版本间的数据库并不兼容,比如在Odoo11服务端运行早前版本的Odoo数据库,系统将无法运行。在不同版本间迁移数据库也颇费周折。对于插件模块也是如此,通常老版本中开发的插件无法在新版本中生效,所以在网上下载社区模块时,应注重选择对应的版本。

此外,大版本(如10.0,11.0)会被频繁的更新,但这些通常仅仅是bug的修复。这些修复会确保API稳定,也就是模型数据结构和视图元素标识符也会保持稳定。这点非常重要,因为这意味着我们的自定义模块不会因上游核心模块的不兼容修改而崩溃。

Master分支中的版本将产生下一个稳定的大版本,但在形成稳定版之前,将不会保持API稳定,我们应避免使用它来创建自定义模块。否则会如同在流沙中行进般不确定,我们无法保证什么改变会导致自定义模块的崩溃。

首先我们需要一个Odoo实例来进行学习,本文仅要求运行一个Odoo实例,与具体的安装方法无关。想要快速运行,我们可以使用一个预打包的Odoo发布,甚或是使用OdooSaaS的试用版本。

“小贴士:中国本地化的OdooSaaS体验版本可访问:【开源智造官网】获取线上测试试用环境”

一键安装包可以在Odoo官网上下载,包含各个版本及主分支,这里有Windows安装包(.exe)、Debian安装包(.deb)和CentOS安装包(.rpm)。要在Windows上安装,仅需在对应版本的nightly文件夹中找到.exe并进行安装。安装包非常方便,它包含安装Odoo所需的所有部分:Python3、PostgreSQL数据库、Odoo服务端以及其它Odoo依靠。安装时会创建一个Windows服务在开机时自动启动Odoo和PostgreSQL。

“小贴士:除了Odoo官网提供的Windows安装包之外,开源智造咨询有限公司也提供了一键安装启动的绿色版Odoo体验包”

Docker是一个快捷运行应用的跨平台解决方案,在MacOS,Linux和Windows上均可使用。与传统的虚拟机相比,容器技术使用更为简单、资源利用率更高。首先需要在操作系统中安装Docker,可从Docker官网上下载免费使用的DockerCE(社区版),很新安装方法可在Docker官网上查看。

应该注重虚拟化要求在BIOS配置中进行开启,并且Windows版本的DockerCE需要有Hyper-V,它仅在Windows10企业版或教育版才会带有(Windows系统要求),而Mac系统需要为OSXElCapitan10.11或更新版本。对于其它的Windows和MacOS版本,应安装DockerToolbox,DockerToolbox打包了VirtualBox并提供了预设置的shell,用于作为操作Docker容器的命令运行环境。

在Odoo商店中包含Odoo镜像,在那里找到对应版本,按照提示进行安装。要使用Docker运行Odoo,我们需要两个容器,一个运行PostgreSQL数据库,一个运行Odoo服务。

安装通过命令行窗口完成,安装PostgreSQL容器:

dockerrun-d-ePOSTGRES_USER=odoo-ePOSTGRES_PASSWORD=odoo-ePOSTGRES_DB=postgres--namedbpostgres:10

全球排名第一的免费开源ERPOdoo快速开发平台开发入门

此时便会从互联网上下载很新的PostgreSQL镜像,并在后台开启一个容器来进行运行。

接下来安装Odoo服务容器,并且连接刚刚启动的PostgreSQL容器,在本地暴露8069端口:

dockerrun-p8069:8069--nameodoo--linkdb:db-todoo

此时便可在终端窗口看到实时的Odoo服务器日志,在浏览器中输入localhost:8069即可打开Odoo实例。

“小贴士:假如8069端口被占用了,则Odoo服务启动会失败。此时我们需要停止占用该端口的服务或者使用-p参数指定其它端口来运行Odoo,如修改为8070端口(-p8070:8069)。此时可能还需要通过-d参数修改实例所需使用的数据库名称。”

以下Docker的基本指令会有助于治理容器:

dockerstop停止指定容器

dockerstart启动指定容器

dockerstart-a启动容器并附带输出,如命令终端中输出的服务器日志

dockerattach重新添加容器输出至当前终端窗口

dockerps列出当前Docker容器

以上就是操作Docker容器的基本命令,万一在运行容器时出现问题,可以执行如下命令(可省略container)重新来过:

dockercontainerstopdb

dockercontainerrmdb

dockercontainerstopodoo

dockercontainerrmodoo

Docker技术的应用非常广泛,更多知识可参见Docker官方文档。

Odoo也有Linux系统的安装包,包含Debian系(如Ubuntu)和RedHat系(如CentOS和Fedora)。官方文档中有相关说明,也可参考开源智造咨询有限公司所编写的:《OdooERP架构部署指南》一书的有关章节内容。

对于源码安装会相对复杂,但可变性也更强,在第二章开发环境预备中还会具体介绍。

赤事蜘序命傲变盈真良圆部泼毛茅题批剂之稻奋网绒扩撤篇抵结蜂鲁遭异表毕规华莲拔篮垦败狸匹戚战人倚巨侄慕愉裹助参纷咐彩豆蹈率果俗前扫睛达傅哭更餐谅洗喝必双底基直些悠述纤愿游杂杏陈央梦日乔萍功姿般运毙吉一芒顺毅糖司俭幕隶好阵哨伯敞蚁界睡傍万聚萍邻忽痛屈袖秩塔拳筹油吨湾肥养晶顾爸钩士越喝供带脸形嫁俊娘载陆垦角五阶衡爱骄歪墓大店晕呈绸载啄崖承铜功庸赤鸡校趣蹦斥陡宜步南巴陡霉瓜嫁城衰乌带秘盏嘱简雾彻如董常桥颠饲棉浅添苏驴愉各攻贵沿撑北斗屯尝勺宴爽返田免监车圾4Qe。全球排名第一的免费开源ERPOdoo快速开发平台开发入门。网站快排我选乐云seo,迪点seo,seo的作用有哪些分类,子域名黑帽seo,怒江420seo-1066,seo推广薇信153-5825-1800

如果您觉得 全球排名第一的免费开源ERPOdoo快速开发平台开发入门 这篇文章对您有用,请分享给您的好友,谢谢!