1、主程序
openerp/cli/server.py
def main(args):
check_root_user() #检查 root 用户,如是 root 则不能运行
openerp.tools.config.parse_config(args) #配置文件处理: openerp-server.conf
check_postgres_user() #检测 postgres 用户
report_configuration() #报表配置
config = openerp.tools.config
if config["test_file"]:
config["test_enable"] = True
if config["translate_out"]:
export_translation()
sys.exit(0)
if config["translate_in"]:
import_translation()
sys.exit(0)
# This needs to be done now to ensure the use of the multiprocessing
# signaling mecanism for registries loaded with -d
if config['workers']:
openerp.multi_process = True
preload = []
if config['db_name']: #如果配置了 db_name 在配置文件 , 则加载对应的 erp-module
preload = config['db_name'].split(',')
stop = config["stop_after_init"]
setup_pid_file()
rc = openerp.service.server.start(preload=preload, stop=stop) #启动 server
sys.exit(rc)
2、 web 模块
openerp.service.server.start(preload=preload, stop=stop) #启动 server
启动 web , ( httpd, MVC) 等 ,等待web服务
3、Server 模块
openerp/service/server.py
提供服务,包括: http request 处理 等
4、dao模块
sql_db.py
class Cursor(object): 用这个对象操作 数据库。 Cursor 在参数中一般写作 cr , 代表 transaction 。
5、log 模块
用 python 库, logging 。由 netsvr.py 模块初始化。
def init_logger():
用 log 跟踪 运行。