Odoo 快速入門與實戰:Python 開發 ERP 指南

劉金亮 著

下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書是目前市面上關於Odoo開發較為全面和系統的書,也是Odoo開發領域的經典書籍。作者結合自己在ERP領域的豐富經驗,以及對Python開發和Odoo框架的深入理解,系統講解了Odoo開發的相關知識。
本書內容由淺入深,包括基礎篇、技術研發篇和實戰篇,共19章內容,書中穿插了Odoo開發的豐富案例。基礎篇(第1~5章)系統介紹了進行Odoo開發所需要的技術準備,章節安排簡明扼要,讀者可以快速掌握Python語言基礎、PostgreSQL基礎、Odoo安裝及應用知識。技術研發篇(第6~14章)聚焦在Odoo二次開發技術,結合bug管理系統的實戰全面介紹了Odoo視圖、模型、ORM、Odoo網站開發及QWeb等技術。實戰篇(第15~19章)通過培訓機構管理系統的設計與實現將前面介紹的各種技術進行融合使用,幫助讀者融會貫通,最終完成一個前端可以通過PC和微信小程序訪問,後端包括學生管理、教師管理、排課管理、費用管理等功能的管理系統。

如果您是一個中小企業主,那麽肯定會面臨ERP選型的難題。SAP、Oracle等產品適合大型企業,版權昂貴,運維成本高。而國內的ERP產品封閉性強,穩定性差,一般需要大量的二次開發,增加了成本,也讓運維變得困難。
所以,對於中小企業來說免費的Odoo是首選。不過我們還要避免出現“免費即最貴”的情況。中小企業應該爭取邊學習邊實施自己的ERP,這時候本書將是您的首選。

本書特色:
本書彌補了市場空缺,讓國內Odoo開發人員可以更高效地提升技能。
書中按照Odoo學習的難易程度安排章節,涵蓋從入門到實戰技巧的全部知識點,是初學者的不二選擇,也是Odoo開發人員的首選工具書。
本書不僅有對Python基礎語法和PostgreSQL基本使用方法的介紹,還包括小程序與Odoo的連接等實用技能、系統運維和部署、性能優化等一線實操技能。
本書支持Odoo11和Odoo12,同時兼顧了Odoo8以後的版本,書中對各版本的重要區別進行了介紹,讀者不需要再為到底學習哪一個版本而困擾。
本書的技術研發篇和實戰篇分別提供了實戰案例,真正體現了“通過實戰學Odoo”的思想。
本書的示例代碼和實戰項目都通過GitHub提供了源碼,讀者可以方便地下載調試,並且可以在GitHub發布issue進行提問和溝通。
較之官方開發手冊,本書最大的優勢是:作者會根據Odoo版本的更新在GitHub增加新的分支,避免了Odoo開發人員需要不停學習新版本的尷尬,確保“一書在手,Odoo開發全懂”。

作者簡介

劉金亮,研究生畢業於北京大學,現任用友集團架構師。曾經作為不錯顧問參與IBM、Accenture、Capgemini的ERP諮詢和實施項目,服務過的公司包括中石化、中石油、上海醫藥、ABB、中國萬達等。在ERP領域有超過10年的工作經驗,對SAP和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