首页>参考读物>计算机科学与技术>软件与程序设计

Odoo快速入门与实战:Python开发ERP指南
作者 : 刘金亮 著
出版日期 : 2019-05-10
ISBN : 978-7-111-62530-8
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 299
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书包括基础篇、研发技术篇和实战篇,按照由基础到进阶,再到实战的顺序讲解。基础篇涉及Odoo简介、Odoo的安装与配置、Odoo应用概览、Python基础和PostgreSQL基础。通过本篇的学习,可以让读者快速掌握Odoo二次开发所需具备的基础知识。研发技术篇是本书的核心内容,涵盖了搭建模型的基础知识、模型建设进阶内容、ORM介绍以及后端视图的介绍。另外还包括了数据的导入和导出功能,以及安全设置等内容。在本篇的介绍过程当中,一直按照bug管理系统的开发为主线,从简单功能一直到整个系统完整上线,读者可以按照书中的代码,一步一步来实现该系统。实战篇则是对前面知识的融会贯通和提升,针对一个完整的培训行业管理系统的开发进行讲解,其系统的复杂性和难度都要比第二篇增强。

图书特色

深入系统介绍Odoo开发,支持Odoo11和Odoo12版本
实践性强,书中结合bug管理系统和培训机构管理系统两个案例来讲解理论知识
随书附带源码下载链接,让您“一书在手,Odoo开发全懂”
刘金亮   / 著
Odoo
快速入门与实战
Python开发ERP指南
Odoo
development introduction and practice
Python developing ERP Guidelines

图书前言

Odoo是什么
Odoo是一个开放源码且功能完善的企业级管理软件平台,它不仅提供了ERP常规模块,而且还允许使用人员进行灵活的实施配置。对于前台配置解决不了的需求,还可以通过Odoo提供的平台进行二次开发。
我曾在SAP领域工作了8年,参与和主导过的项目金额超过千万元,因此我能深刻体会到一个好的ERP产品在实施过程中是多么重要。目前国内虽然也有不错的ERP产品,但全是靠厂商及其合作伙伴来实施并进行二次开发,如果甲方想要自己培养技术人员则非常困难,很少有技术人员愿意将自己的职业发展方向捆绑在一个封闭又落后的技术框架上。这时候,Odoo开源及其使用Python开发的优点就显现了出来,不仅企业可以免费配置使用,而且还可以方便地找到二次开发人员,甚至也可以找到具有学习热情的内部人员。毕竟Python的魅力及其在互联网领域越来越广的应用,决定了以后Odoo开发的难度会越来越低。
Odoo良好的可扩展性可以媲美任何主流的ERP产品,其允许按照模块实现新的需求;在二次开发的过程中,如果要修改已有功能的话,也不需要直接修改源码,只需使用继承的方式来进行增强和扩展,或者在子类中修改字段或方法。
Odoo从其前身OpenERP开始,就受到了来自社区的活跃更新的支持;目前,Odoo有数千个社区模块,几乎所有的主题都能找到相应的社区模块,这也反过来进一步吸引了更多的人员参与到Odoo的社区中来。
谁适合阅读本书
本书作为Odoo的开发指南,按照由简入难的步骤对Odoo的开发进行了全面介绍,不仅可以让你快速入门Odoo,同时也可以作为你进行项目实战的不错的参考资料。
本书适合于想使用Odoo进行开发的开发者,在阅读本书前甚至不需要具备Python基础编程知识,因为书中专门有一章(第4章)对Python进行了介绍。书中所列案例使用的代码简单明了,对于使用中会遇到的一些“坑”也给出了特别说明。
同时,本书也适合于Odoo的关键用户和最终用户,如果你在拥有Odoo系统的使用经验的前提下,还希望提升自己的开发技能,以便日后在工作中能够完成更为复杂的需求实现,那么本书将是非常好的参考用书。
如果你已经是Odoo开发人员,那么可以将本书作为不同版本之间的对比用书,毕竟从Odoo8到目前的Odoo12有了较大的变化。
最后,在校大学生也可以使用本书制作自己的案例、编写论文,甚至直接作为未来工作的编程平台。Odoo在国内的市场越来越大,特别是非一线城市对于Odoo人才的需求也越来越大,如果作为学生的你不想将自己未来的职场定位在北上广深,那么Odoo将是一个非常不错的选择。
如何阅读本书
本书在逻辑上分为三篇:基础篇、技术研发篇和实战篇。基础篇(第1~5章)包括了Odoo的介绍及安装配置、Python基础和PostgreSQL数据库介绍。不了解Odoo的读者请认真阅读第一篇,以免在后面的章节中出现不了解的名词。特别是没有Python基础的读者,最好能够认真学习第4章。
技术研发篇(第6~14章)则专注在Odoo的技术范畴内,包括了从视图到ORM和安全配置的全方位介绍,并且都是以bug管理系统的实现为示例来进行讲解的,读者在学习本篇内容时应边参考本书边动手实现。如果读者已经有Odoo基础,则可以直接下载本书的源码,在遇到不理解的内容时再查找相应知识点。
而对于实战篇(第15~19章),其内容从培训机构的管理系统的需求分析开始,再到划分模块,最后到具体的逻辑和视图的实现,非常适合有充足时间的初学者,特别是学生。
读者在阅读本书时,要注意源码的使用,具体的源码下载方式会在后续的“源码与勘误支持”部分提供。
在阅读本书的过程中,读者有任何疑问都可以访问作者网站www.scott-odoo.com,以进行提问和交流。
源码与勘误支持
书中提供了核心源码,而且为了便于阅读特意增加了行号。需要读者注意的是,因为排版的问题,可能将原本属于一行的代码自动换行成两行,所以请读者以行号为准,凡是不带行号的代码说明都属于上一行。
本书的示例代码以及实战项目的源码可以到GitHub下载,下载地址为:
https://github.com/ScottAI/Odoo-Python-ERP-
实战项目同时支持Odoo11和Odoo12,Odoo端的下载地址如下:
https://github.com/ScottAI/-Odoo---
实战项目的小程序端下载地址为:
https://github.com/ScottAI/lexuebao-odoo-wechat
由于作者的水平有限,加之撰写时间仓促,难免有错误或不合理之处,欢迎读者指正,你可以通过以下任何一种方式联系到作者:
作者的QQ:784680552
作者的邮箱:wkdljl@163.com
作者的个人博客:www.scott-odoo.com

上架指导

计算机\程序设计

封底文字

如果您是一个中小企业主,那么肯定会面临ERP选型的难题。SAP、Oracle等产品适合大型企业,版权昂贵,运维成本高。而国内的ERP产品封闭性强,稳定性差,一般需要大量的二次开发,增加了成本,也让运维变得困难。
所以,对于中小企业来说免费的Odoo是首选。不过我们还要避免出现“免费即最贵”的情况。中小企业应该争取边学习边实施自己的ERP,这时候本书将是您的首选。

本书特色:
本书弥补了市场空缺,让国内Odoo开发人员可以更高效地提升技能。
书中按照Odoo学习的难易程度安排章节,涵盖从入门到实战技巧的全部知识点,是初学者的不二选择,也是Odoo开发人员的首选工具书。
本书不仅有对Python基础语法和PostgreSQL基本使用方法的介绍,还包括小程序与Odoo的连接等实用技能、系统运维和部署、性能优化等一线实操技能。
本书支持Odoo11和Odoo12,同时兼顾了Odoo8以后的版本,书中对各版本的重要区别进行了介绍,读者不需要再为到底学习哪一个版本而困扰。
本书的技术研发篇和实战篇分别提供了实战案例,真正体现了“通过实战学Odoo”的思想。
本书的示例代码和实战项目都通过GitHub提供了源码,读者可以方便地下载调试,并且可以在GitHub发布issue进行提问和沟通。
较之官方开发手册,本书最大的优势是:作者会根据Odoo版本的更新在GitHub增加新的分支,避免了Odoo开发人员需要不停学习新版本的尴尬,确保“一书在手,Odoo开发全懂”。

图书目录

前言
第一篇 基础篇
第1章 Odoo简介 2
1.1 Odoo发展历程 2
1.2 Odoo与主流ERP系统的对比 3
1.3 总结 4
第2章 安装与配置 5
2.1 在Ubuntu上安装Odoo 5
2.1.1 创建Odoo用户并授权 5
2.1.2 更新依赖包并使用git克隆Odoo源码 6
2.1.3 安装Odoo依赖包及PostgreSQL 6
2.1.4 启动Odoo服务 7
2.2 在Windows上安装Odoo 8
2.2.1  准备工作 9
2.2.2  环境配置 9
2.3 使用和创建Odoo数据库 10
2.3.1 创建Odoo数据库 10
2.3.2 语言选择 11
2.4 服务器配置 13
2.4.1 Odoo服务器配置文件 13
2.4.2 远程开发 15
2.5 安装模块 16
2.5.1 配置模块插件路径 16
2.5.2 更新应用列表 16
2.6 总结 17
第3章 Odoo应用概览 18
3.1 整体架构 18
3.2 什么是开发者模式 19
3.3 开发者模式应用 20
3.3.1 模块需求简介 21
3.3.2 向已有模型新增字段 21
3.3.3 新建菜单 25
3.3.4 新建自定义模型 28
3.3.5 新建视图 29
3.3.6 安全性配置 30
3.4 base模块简介 32
3.5 总结 32
第4章 Python基础 33
4.1 Python简介 33
4.2 安装和设置 34
4.2.1 Anaconda的安装 34
4.2.2 Anaconda Prompt包管理 35
4.3 基本语法 35
4.3.1 编码 36
4.3.2 标识符 36
4.3.3 Python保留字 36
4.3.4 注释 36
4.3.5 行与缩进 36
4.3.6 数值类型 37
4.3.7 字符串 37
4.3.8 布尔值 38
4.3.9 类型转换 38
4.3.10 引入 38
4.3.11 万物皆对象 39
4.3.12 元组 39
4.3.13 列表 40
4.3.14 字典 43
4.3.15 集合 44
4.3.16 列表、字典以及集合的推导式 45
4.3.17  函数 46
4.3.18 文件和操作系统 48
4.4 面向对象的编程 48
4.4.1 self 49
4.4.2 对象的方法 49
4.4.3  __init__方法 49
4.4.4 类与对象的变量 50
4.4.5 继承 51
4.4.6 装饰器 52
4.5 总结 53
第5章 PostgreSQL基础 54
5.1 PostgreSQL简介 54
5.2 pgAdmin使用简介 55
5.2.1 创建数据库 55
5.2.2 删除数据库 55
5.2.3 使用SQL语句 57
5.3 PostgreSQL常用SQL语句 58
5.3.1 查询语句 58
5.3.2 更新语句 59
5.3.3 删除语句 59
5.3.4 插入语句 59
5.4 总结 59
第二篇 技术研发篇
第6章 自建应用入门 62
6.1 使用脚手架创建新模块 62
6.2 安装和更新模块 64
6.3 模型 65
6.3.1 创建模型 66
6.3.2 常用属性 67
6.3.3 保留字段 67
6.3.4 模型继承 67
6.4 视图 69
6.4.1 新增菜单 69
6.4.2 创建列表视图 71
6.4.3 业务文档表单视图 72
6.4.4 搜索视图 74
6.4.5 视图继承 74
6.5 业务逻辑 76
6.6 安全性配置 77
6.6.1 访问控制 77
6.6.2 网页和控制器 79
6.7 总结 80
第7章 自建应用进阶 81
7.1 模型 81
7.1.1 模型属性 83
7.1.2 模型与python类 83
7.1.3 瞬态和抽象模型 84
7.1.4 透视已有模型 84
7.1.5 模型扩展 85
7.2 字段 86
7.2.1 创建字段 86
7.2.2 字段常用属性 87
7.2.3 特殊字段 88
7.3 模型关系与复杂字段 88
7.3.1 关系字段 89
7.3.2 模型关系 89
7.3.3 one2many的逆向关系 91
7.3.4 层级结构关系 91
7.3.5 使用引用字段的动态关系 92
7.4 更多模型继承机制 93
7.4.1 使用原型继承 93
7.4.2 使用委托继承 94
7.5 视图 94
7.6 总结 97
第8章 文件相关数据操作 98
8.1 外部ID 98
8.2 导入导出数据 101
8.2.1 导出数据 101
8.2.2 导入数据 102
8.2.3 CSV中关联字段的导入 103
8.3 模块数据 104
8.3.1 演示数据 104
8.3.2 XML数据文件 105
8.4 总结 108
第9章 ORM API基础 109
9.1 常用装饰器 109
9.1.1 记录集处理装饰器 109
9.1.2 专有目的装饰器 110
9.2 ORM内置方法 112
9.2.1 模型写入数据的方法 112
9.2.2 使用RPC的网页端方法 113
9.3 数据导入导出方法 114
9.4 通信API 114
9.4.1 邮箱和社交API 115
9.4.2 消息子类型 116
9.4.3 发布消息 116
9.4.4 增加关注者 117
9.5 总结 117
第10章 ORM:业务逻辑处理 118
10.1 向导 118
10.1.1 创建向导 118
10.1.2 向导模型 120
10.1.3 向导form 120
10.1.4 向导业务逻辑 123
10.1.5 异常处理 124
10.2 更多ORM API用法 126
10.2.1 shell命令 126
10.2.2 服务器环境 127
10.2.3 事务和底层SQL 128
10.3 对记录集的操作 130
10.3.1 查询模型 130
10.3.2 单例模式 131
10.3.3 写记录集 131
10.3.4 日期和时间 132
10.3.5 操作记录集 133
10.3.6 关系字段 135
10.4 总结 135
第11章 创建网站 136
11.1 第一个页面 136
11.1.1 创建新模块插件 136
11.1.2 Hello World 137
11.1.3 Web功能扩展 138
11.1.4 Hello CMS 141
11.2 前端页面渲染 142
11.2.1 CSS和JavaScript 142
11.2.2 列表页面 143
11.2.3 表单页面 145
11.3 权限控制 148
11.4 总结 150
第12章 后端视图 151
12.1 菜单项和窗口动作 152
12.2 表单视图 154
12.2.1 表头 156
12.2.2 工作表 157
12.3 视图字段 160
12.4 按钮 162
12.5 看板视图 164
12.5.1 看板视图基本用法 166
12.5.2 看板卡片布局 169
12.5.3 看板卡选项菜单 171
12.5.4 看板视图动作 172
12.6 其他类型的视图 172
12.6.1 列表视图 172
12.6.2 搜索视图 174
12.6.3 日历视图 175
12.6.4 图形和数据透视图 177
12.7 总结 179
第13章 QWeb 180
13.1 客户端QWeb 180
13.1.1 JavaScript 表达式 181
13.1.2 动态替换属性 181
13.1.3 循环指令 183
13.1.4 条件指令 184
13.1.5 渲染值 184
13.1.6 设置变量值 185
13.1.7 复用模板 185
13.1.8 CSS和JavaScript 186
13.2 报表 187
13.2.1 安装wkhtmltopdf 187
13.2.2 创建商业报表 188
13.3 服务器端QWeb 188
13.3.1 QWeb报表模板 188
13.3.2 报表展示数据 190
13.3.3 基于客制化SQL的报表 190
13.4 总结 192
第14章 与外部系统的集成 193
14.1 Python客户端调用 193
14.2 客户端应用程序开发 196
14.3 ERPpeek客户端 199
14.4 OdooRPC库 200
14.5 总结 201
第三篇 实战篇
第15章 Odoo培训行业管理系统设计 204
15.1 开发背景 204
15.1.1 培训机构一般情况介绍 205
15.1.2 培训机构管理中出现的主要问题 206
15.1.3 系统开发的必要性和可行性 207
15.2 系统功能设计 207
15.2.1 系统业务流程分析 207
15.2.2 系统功能需求分析 209
15.3 模块及环境 211
15.3.1 模块详细设计 212
15.3.2 git与环境 213
15.4 总结 216
第16章 系统核心模块实现 217
16.1 科目及教师 217
16.1.1 模型 218
16.1.2 视图 220
16.2 班级和学生 224
16.2.1 模型 225
16.2.2 视图 228
16.3 课程和计划 229
16.3.1 模型 230
16.3.2 视图 235
16.4 菜单 236
16.5 安全 238
16.6 总结 239
第17章 费用及CRM模块的实现 240
17.1 费用模块 240
17.2 CRM模块 244
17.3 总结 246
第18章 系统小程序端实现 247
18.1 小程序开发简介 247
18.1.1 小程序的Hello World 248
18.1.2 小程序代码结构 249
18.2 Odoo与小程序的集成 252
18.2.1 小程序登录机制 252
18.2.2 小程序鉴权 255
18.2.3 小程序登录Odoo 257
18.3 模型 260
18.3.1 模块整体架构 260
18.3.2 重要模型 261
18.4 总结 265
第19章 测试与部署 266
19.1 系统测试 266
19.1.1 单元测试 266
19.1.2 配置测试 267
19.1.3 编写测试用例 268
19.1.4 测试异常 269
19.1.5 运行测试 270
19.1.6 YAML测试 270
19.2 系统调试 271
19.2.1 开发工具 271
19.2.2 服务器端开发选项 271
19.2.3 调试 272
19.2.4 Python调试 272
19.2.5 会话调试示例 273
19.2.6 交互性Python调试器 274
19.2.7 打印信息和记录日志 274
19.2.8 “杀死”运行中的进程 275
19.3 系统部署 275
19.3.1 可用的预建包 275
19.3.2 安装依赖 276
19.3.3 准备专用系统用户 277
19.3.4 从源代码安装Odoo 277
19.3.5 设置配置文件 278
19.3.6 多进程运行 279
19.3.7 将Odoo设置为系统服务 279
19.3.8 创建系统服务 280
19.3.9 创建Upstart/sysvinit服务 281
19.3.10 命令行检查Odoo服务 282
19.3.11 使用反向代理 282
19.3.12 将Nginx设置为反向代理 283
19.3.13 设置HTTPS 284
19.3.14 Nginx优化 285
19.3.15 长轮询 286
19.3.16 服务器和模块更新 287
19.4 总结 288

教学资源推荐
作者: Brian W.Kernighan,Rob Pike
作者: (美)布莱恩·R. 霍尔(Brian R.Hall) 凯文·J.斯隆卡(Kevin J.Slonka)著
作者: 邱李华,曹青,郭志强
作者: (英)Lawrence C. Paulson
参考读物推荐
作者: [印]谢瑞什·查万(Shirish Chavan)
作者: 董文娟 尚小冬 张军 著