Odoo简介
Odoo是全球流行的开源企业管理套件,其功能涵盖了CRM、销售、采购、库存管理、生产制造、质量管理、HR全功能、财务管理、项目管理、PLM等一系列完善的企业信息化需求。许多模块已经开发完成,或者说是提供的一套软件产品,在中国有专门的公司做符合中国业务的二次开发维护。
首先,他是推荐基于Python语言做开发的Web框架,它和Django、Flask等Python前端框架一样。
odoo框架是开源的,它的长处在于快速搭建纯B/S架构的ERP系统,因为它是针对ERP的需求发展而来的,适合定制出符合客户各种需求的ERP系统和电子商务系统。在odoo框架中,odoo开发者已为我们预置了众多模块:销售、采购、库存、财务、生产、项目管理、CRM、POS、人力资源、车辆管理、午餐管理、网站等等。
当然,他能做的并不只是ERP,作为odoo框架的使用者,我们完全可以构建出各种用途的B/S系统。这完全得益于odoo强大的底层结构,得益于odoo的最大特点——模块化。
odoo的模块化
我们都知道积木、拼图、乐高等益智游戏的存在,这些游戏的完成品都是有一个又一个的部分组成的。
我们使用odoo框架去开发系统就好像搭积木,拼拼图一样,作为框架使用者,我们要完成的系统就是乐高成品,而系统中的模块就是每一块乐高块。在我们要做的系统中,我门需要什么模块就开发安装什么模块,不需要就不安装,安装错了再卸载下来就可以了。系统要想变成什么样子,完全取决于你想要什么。所以上面说,odoo框架不是只能做ERP系统。
odoo的优点
与其罗列odoo的优点,不如说说它比传统框架有哪些优秀的地方。
就拿ERP来说,传统ERP多为商用软件,相当封闭,对于不同用户是由一定的局限性的,用户购买后并不一定完全符合自身的需求,就会出现 我想要的没有,我不想要的显得冗余 或者 系统的某些地方不符合我实际需求的 情况。这就产生了一个系统改造及费用的问题。传统产品的升级加功能还好说,改功能可就麻烦了,因为这部分功能的改动,很有可能影响其他功能的使用。
而odoo框架的模块特性、继承特性,很好的解决这一问题。odoo框架使用者只需要生产模块就行了,需要什么模块就开发什么模块。需要改造某部分功能,只需要改造某个模块后,升级模块就行了,odoo中的每一个模块都是可安装、可卸载、可升级的。这也就体现了它的超强定制性。
odoo的缺点
同样,odoo也有不足之处,想要实现传统软件中的某些特别效果,由于受到odoo视图类型限制,开发起来并不方便。当然,odoo提供的QWEB前端开发,能够拯救这一点。但在挑剔且刻板的传统用户的需求面前,这似乎并不符合odoo快速开发的特点。
快速理解odoo(与Django做对比)
相信会python的开发都知Django吧,我由于之前也是一直写Django所以理解odoo也会比较快,现在我们来看看Django与Odoo的相同与不同点吧
相同点:
① Model: Model 层 Django和Odoo 基本一致。
② 两个框架后台管理页面样式都比较单调,酷炫的效果需要开发实现。
③ 都支持web开发,但都不是其强项。同时Odoo具备网站生成器功能。
④ 后台管理自动适配各端(电脑,平板,手机等)
不同点:
① 模块: Django后台代码配置模块(代码完成),Odoo可以线上安装模块或者选择卸载模块,不需要停服务(可以0代码就完成)。
② 视图:Django默认增删改查视图,Odoo需要自己写代码完成数据的展示。
③ Odoo 框架太重,Django框架比较轻量,可以根据自己的需求添加。
④ 权限:Odoo 权限可以控制到每个数据库表中每个字段,而Django目前看到的结果只能控制到某个功能操作上例如:增删改查。Odoo权限更细化。
⑤ Odoo支持在线开发,Django不支持。
⑥ Django比Odoo运行速度快。
⑦ Django比Odoo更容易上手,对于初学者Django比较友好。
⑧ Django默认自带用户权限功能,但是Odoo自带功能更多(功能太多太细,但是功能多不一定需要)。
⑪ Odoo列表显示可以切换成图表展示无需开发。(仅限于简单图表),Django需要自己实现。
⑫ 如果想要酷炫的效果无论是Django还是Odoo都需要自己实现。(但是Django更容易实现)
总结:
odoo其实可以理解为一个已经开发好的程序,可以实现一些比较常规的功能,因为每个公司每个部门的需求都不太一样,那每个模块就都需要根据需求个性化定制以下功能,那就需要二次开发,我是觉得蛮讲究功底的(因为我写过的都是0开始的,没有改过别人的项目,在完整的项目上二次开发不仅要理解到别人的思路还要按照他的规范来,才便于3次、4次开发嘛)