odoo是一套全球開源的ERP/CRM系統。html
開發語言:pythonpython
數據庫:PostgreSQLgit
系統採用較靈活的模塊架構,內置了許多功能強大的經常使用模塊。用戶能夠按需從模塊庫中選擇模塊進行安裝、卸載和升級的管理操做。也能夠選用第三方模塊或者本身開發的模塊。github
經常使用模塊包括:採購管理,銷售管理,庫存管理,財務管理,貨品管理,營銷管理,客戶關係管理,生產管理,人事管理,服務支持等等。web
odoo的底層框架很是強大,基於werkzeug,採用MVC模式,容許開發者對已有模塊進行擴展,也能夠徹底摒棄內置模塊,使用本身開發的模塊。sql
版本:docker
Odoo有兩種不一樣的版本:社區版和企業版。企業版包含僅限於企業版客戶和合做夥伴的代碼。社區版免費向全部人開放。數據庫
odoo使用的開發語言是Python,在運行odoo以前須要先安裝Python。vim
odoo使用的數據庫是Postgresql,在運行odoo以前須要先安裝好數據庫。api
略。
多種方式
在線使用、安裝包、docker等,節省時間。
獲取源碼直接運行,方便進行模塊開發。
有兩種獲取Odoo源代碼的方式:zip壓縮包或經過git。
git:git clone https://github.com/odoo/odoo.git
源碼目錄結構
odoo-13.0 ├── CONTRIBUTING.md ├── COPYRIGHT ├── LICENSE ├── MANIFEST.in ├── README.md ├── SECURITY.md ├── addons # 內置模塊 ├── debian ├── doc ├── odoo ├── odoo-bin # 啓動腳本 ├── requirements.txt # 依賴 ├── setup ├── setup.cfg └── setup.py
pip install -r requirements.txt
python odoo-bin
能夠看到odoo運行在本地的8069端口
2020-06-10 15:42:27,366 2701 INFO ? odoo: Odoo version 13.0 2020-06-10 15:42:27,366 2701 INFO ? odoo: addons paths: ['/Users/luxiaqiang/MyProjects/odoo-13.0/odoo/addons', '/Users/luxiaqiang/Library/Application Support/Odoo/addons/13.0', '/Users/luxiaqiang/MyProjects/odoo-13.0/addons'] 2020-06-10 15:42:27,367 2701 INFO ? odoo: database: default@default:default 2020-06-10 15:42:27,625 2701 INFO ? odoo.addons.base.models.ir_actions_report: You need Wkhtmltopdf to print a pdf version of the reports. 2020-06-10 15:42:28,020 2701 INFO ? odoo.service.server: HTTP service (werkzeug) running on luxiaqiang-mbp.local:8069
瀏覽器打開http://127.0.0.1:8069/能夠看到,跳轉到了數據庫建立頁面
image-20200610235140484.png
odoo運行依賴於數據庫,第一次進入須要先建立數據庫
建立數據庫後,自動登陸跳轉到應用頁面,使用的帳號密碼就是建立數據庫時輸入的Email和Password
安裝聯繫人模塊
python odoo-bin scaffold test ./my_addons
my_addons │ └── test │ ├── __init__.py │ ├── __manifest__.py # Odoo模塊必須的文件,包含必要的模塊信息。 │ ├── controllers # 主要是一些HTTP請求相關的業務邏輯 │ ├── demo │ ├── models # 模型文件夾,業務的模型都放在這裏。 │ ├── security # 權限相關的文件 │ └── views # 視圖文件夾,關於界面佈局的邏輯在這裏。
編輯models文件夾下的models.py文件
from odoo import models, fields, api class test(models.Model): _name = 'test.test' _description = 'test.test' name = fields.Char() value = fields.Integer() description = fields.Text()
編輯views文件夾下的view.xml文件
<odoo> <data> <!-- Top menu item --> <menuitem name="test" id="test.menu_root"/> <!-- explicit list view definition --> <record model="ir.ui.view" id="test.list"> <field name="name">test list</field> <field name="model">test.test</field> <field name="arch" type="xml"> <tree> <field name="name"/> <field name="value"/> <field name="description"/> </tree> </field> </record> </data> </odoo>
修改_manifest_.py文件
{ 'name': "test", 'summary': """ Short (1 phrase/line) summary of the module's purpose, used as subtitle on modules listing or apps.openerp.com""", 'description': """ Long description of module's purpose """, 'author': "My Company", 'website': "http://www.yourcompany.com", # Categories can be used to filter modules in modules listing # Check https://github.com/odoo/odoo/blob/13.0/odoo/addons/base/data/ir_module_category_data.xml # for the full list 'category': 'Uncategorized', 'version': '0.1', # any module necessary for this one to work correctly 'depends': ['base'], # always loaded 'data': [ 'security/ir.model.access.csv', 'views/views.xml', 'views/templates.xml', ], # only loaded in demonstration mode 'demo': [ 'demo/demo.xml', ], "application": True }
當修改了py文件時,須要重啓odoo進程,而修改了xml等靜態文件則須要升級模塊。
vim odoo.conf
[options] addons_path = /Users/luxiaqiang/MyProjects/odoo-13.0/odoo/addons,/Users/luxiaqiang/MyProjects/odoo-13.0/addons,/Users/luxiaqiang/MyProjects/odoo-13.0/my_addons admin_passwd = $pbkdf2-sha512$25000$d67VGoNwTknp3bv33hsD4A$sVG6/LbAEFo37jdxOFxBqreWxKmqCH6GUAL1npxMQjJdsclqwq4yeH5kWV8TZ3lwqpZTvY9BVx72XTYMAJ4yDQ csv_internal_sep = , data_dir = /Users/luxiaqiang/Library/Application Support/Odoo db_host = False db_maxconn = 64 db_name = odoo db_password = False db_port = False db_sslmode = prefer db_template = template0 db_user = False dbfilter = demo = {} email_from = False geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb http_enable = True http_interface = http_port = 8069 import_partial = limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 60 limit_time_real = 120 limit_time_real_cron = -1 list_db = True log_db = False log_db_level = warning log_handler = :INFO log_level = info logfile = longpolling_port = 8072 max_cron_threads = 2 osv_memory_age_limit = 1.0 "odoo.conf" 59L, 1510C
啓動
python odoo-bin -c odoo.conf --def=all
image-20200611005521882.png
image-20200611005607154.png
image-20200611005708852.png