MoSys详细说明文档 - Oejia 技术栈,企业方案分享、Odoo顾问
Oejia 技术栈
主页
分享
微信模块
索引
关于
订阅
编辑器
登录
MoSys详细说明文档
Oejia
on 2014-12-23 13:27:09
[TOC] #### 加载与初始化 __init__模块 ##### 1. 设置模板路径 设置mosys内置的页面模板存放的路径 **./templates** 同时设置模板解析错误时返回的内容 ##### 2. 设置静态路径 > * static_mosys:Admin相关页面使用的静态 js/css/imgs 等 > * tmpfile:主要用于存储导出时数据的临时文件 ##### 3. 安装apps 函数 **setup** 主要作用是进行模型扫描加载到全局对象,**load**模块定义了加载详细过程 ##### 4. 引入公共路由 ```python import route_func ``` route_func模块中定义了一些公共的URL路由 #### load模块 定义了mosys的核心加载过程 ##### 过程 循环`apps.apps_list`(子系统app列表),循环每个子系统的模型`app.models`,然后根据模型的类别分别做菜单、从属及初始化的处理,最后添加到每个类别的全局缓存对象中去,如下: - SYS_MENUS 全局菜单字典 - SYS_MODELS 全局数据库模型集合 - APP_PAGES 全局自定义页(custom)集合 - FORM_ACTIONS 全局自定义表单操作字典 mosys系统启动是做一次load处理,以后对象属性的访问从全局缓存中取 #### config模块 config.ini的读写工具类 #### custom模块 系列自定义模型的实现 ##### AppPage 自定义页 ##### GridModel 自定义Grid数据页 ##### FormAction 自定义表单操作页 #### CacheData 缓存公共工具组件 #### Grid Export Grid表格数据导出的实现 #### sql_utils 数据库操作工具集 #### 使用实例 ##### 1. 定义Server(Web服务启动入口) mosys本身是基于mole的,所以mole的使用方式均可直接用在mosys中 ```python #初始化加载apps import apps import mosys mosys.setup(apps) #加载其他普通Mole App import PyRedisAdmin.routes import serverM.routes from mole import run from mole.sessions import SessionMiddleware if __name__ == "__main__": app = SessionMiddleware(app=apps.app, cookie_key=apps.COOKIE_KEY) run(app=app,host='0.0.0.0', port=8081) ``` 其中apps.app、apps.COOKIE_KEY均是要启动apps的配置属性 ##### 2. apps的属性配置 在apps的代码目录下 **__init__.py** 内置的可配置属性如下: - **apps_list** 定义安装的子系统列表,示例如下 ```python apps_list = ( ('person', u'人事'), ('att', u'考勤'), ('pos', u'消费'), ) ``` - **COOKIE_KEY** 会话加密密钥 - **app** Mole WSGI Application对象 ```python from mole.mole import default_app app = default_app() ``` - **crud_db_config** 模型未指定database时默认使用的数据库连接配置,示例 ```python crud_db_config = { 'engine': 'peewee.SqliteDatabase', 'name': 'db/example.db', 'check_same_thread': False, } ``` 其中engine为使用的数据库类型,可选的有:`peewee.PostgresqlDatabase`、`peewee.MySQLDatabase`、`peewee.SqliteDatabase` 一般在模型定义时指定数据库连接池对象给模型database属性 - **workspace** 指定工作目录 ```python workspace = '.' ``` - 其他 ```python #配置公共模板目录 from mole.const import TEMPLATE_PATH TEMPLATE_PATH.append('./apps/templates/') #加载apps自定义的公共URL路由 import routes ``` ##### 3. app子系统的属性配置 - menus 定义菜单组,示例 ```python menus = ( ('aboutEmp',u'菜单组一', 'grup_chat'), ('baseinfo',u'菜单组二', 'grup_chart'), ('reportEmp',u'菜单组二', 'grup_disc') ) ``` “aboutEmp”为组key,“菜单组一”为菜单组显示名,“grup_chat”为菜单icon图标(需要在css中预先定义) - 其他 ```python # 配置app的模板目录 from mole.const import TEMPLATE_PATH TEMPLATE_PATH.append('./apps/crud_example/templates/') #加载app自定义的URL路由 import routes ```
Information
MoSys详细说明文档
http://www.oejia.net/blog/2014/12/23/mosys_detail.html
http://www.oejia.net/raw/2014/12/23/mosys_detail.md
Oejia
on 2014-12-23 13:27:09
Category
后端HTTP
Tag
Python
Web
Http
Related
2022-10-06 :
Odoo 16 正式发布时间
2022-02-03 :
用 VIM 操作 BOM 标记
2021-05-14 :
Odoo 小程序商城模块 Oejia_weshop v0.2.3 发布,多形式的客户资产及客户分级,多商户供应流程的管理
2019-03-08 :
Odoo 菜单美化模块 oejia_menu 常见问题处理
2019-02-26 :
Odoo 微信客服扩展模块使用说明
2018-11-14 :
Odoo 基于企业微信的多功能微信客服系统,多终端回复,无需专人值守电脑
2018-03-15 :
在 YouMd 中使用链接跳转的三种方式
2017-11-02 :
Odoo 模块开发规范常见约定
2016-12-07 :
DjangoX 模型管理页面自定义模板示例
2014-12-01 :
Mole概述(基于Bottle的超轻量级web基础架子)
March 2023
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
分类
Odoo (123)
DjangoX (13)
后端HTTP (7)
YouMd (4)
移动开发 (4)
Django (3)
前端 (2)
JS (2)
公告说明 (2)
Python (1)
Nginx (1)
桌面UI (1)
异常处理 (1)
官方公众号
关注公众号实时咨询我们
About This Entry
Mole详细说明文档
RQ异步任务队列介绍
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Python
Web
Http
客服系统
OE商城
Cordova
审批OA
HTML5
Markdown
解析
DjangoX
ExtJS
示例
Excel
JS
新年
PyQT
扩展开发
YouPBX
服系统
最近发布
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError: Failed to execute 'querySelectorAll' on 'Element': 'footer:not(field footer)' is not a valid selector
企业微信错误码:60020 的处理
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
Odoo 让 server action 显示到指定的视图上
Odoo 增加树形列表视图的支持
Odoo 16 正式发布时间
Odoo 企业微信之日历、日程的同步
钉钉消息通知及审批功能的使用说明
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子