Oejia 技术栈
首页
应用市场
方案
OE学院
分享
关于
编辑器
登录
MoSys详细说明文档
on 2014-12-23
[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/article/bc1311ca3931ab77b51a1f3d8e41dc81
http://www.oejia.net/raw/bc1311ca3931ab77b51a1f3d8e41dc81
on 2014-12-23
Category
后端HTTP
Tag
Web
Http
Related
2021-08-31 :
Odoo 小程序商城多店铺版基本介绍
2019-12-09 :
YouPBX 基本使用说明
2022-06-16 :
AccessError
2016-05-11 :
在普通 Python 项目中使用 Django ORM 的方法
2020-09-10 :
Odoo14 相对 Odoo13 依赖库的变化
2017-11-16 :
DjangoX 扩展的命令(commands)使用指南
2016-03-12 :
Odoo 微信模块 Oejia_wx 基本使用说明
2019-01-24 :
Python3 Python2 兼容处理集锦
2016-03-19 :
从 odoo 源码看 odoo 8.0 到 9.0 的变化
2014-12-15 :
Cordova配置config.xml详解
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (134)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
About This Entry
PyQt界面控件常用积累
MoCrud详细说明文档
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
审批OA
HTML5
OE商城
Markdown
DjangoX
解析
oeshop
PyQT
服系统
YouPBX
Excel
示例
md
markdown
Python
最近发布
OSError [Errno 5] Input/output error 异常处理
Odoo context 的常见使用示例
Odoo 符合国人菜单导航习惯的后台主题,支持最新的Odoo17、16等版本,支持企业版!
Odoo 官方应用市场开启 Odoo17 应用的发布!增加了行业应用专栏
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子