前一段时间实习结束,便入职了一家新公司,我的职位是搞odoo框架的二次开发的(当然还是实习,小编还木有毕业呢),就写一些关于这方面的吧,作为分享,也作为笔记。
odoo是一个完整的系统,是一个开源框架,针对ERP的需求发展。
odoo是基于一个模块化,可扩展和直观的快速开发应用程序(RAD)的框架,业务逻辑主要通过Python来编码,11.0版本之前使用python2,11.0版本开始支持Python3,视图层则通过JS和XML来实现,ORM层类似但并非django的ORM框架,内置的web服务器使用的跟Flask框架一样的Werkzeug。 前端使用自己开发的Qweb框架,不需要写HTML代码,只需要根据Odoo定义好的xml结构编写布局文件即可。
odoo用户手册:www.cnmx.com/documentati…
odoo应用层采用MVC三层架构模式(模型-视图-控制器)
model:采用python语言,处理应用程序数据逻辑部分
view:采用XML来定义界面
controller:给予HTTP routing路由机制来控制用户请求与具体功能的交互
ORM(对象关系映射)模型是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,是通过试用描述对象和数据库之间的映射的元数据,将程序中的对象自动持久化到关系数据库中。 orm是odoo框架中已经封装好的一些类模型(类)、方法;能快速将模型的数据转化成数据库数据,快速处理模型(数据表)间的逻辑关系,避免了去写大量sql语句,简化了开发,提升了代码可读性,但不可避免牺牲了一定性能。