Oejia 技术栈
首页
分享
微信模块
关于
编辑器
登录
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
2022-08-26 :
钉钉消息通知及审批功能的使用说明
2017-08-10 :
DjangoX 列表页自定义计算列的使用
2019-05-30 :
小程序商城模块 Oejia_weshop v0.1.4 发布,支持Odoo账号绑定登录及价格表机制
2019-01-30 :
Qweb 渲染过程研究
2016-03-19 :
Odoo 业务相关
2016-04-20 :
Python 相关
2018-11-23 :
Odoo 菜单定制模块 Oejia_menu v0.2.0 发布!
2016-08-01 :
Odoo 模型定义详解
2016-05-11 :
在普通 Python 项目中使用 Django ORM 的方法
2017-03-19 :
Log
分类
(23)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (126)
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
客服系统
HTML5
审批OA
OE商城
Markdown
DjangoX
oeshop
服系统
解析
Excel
YouPBX
markdown
PyQT
md
Python
示例
最近发布
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Odoo16 开启客屏时如何实现在POS设备上自动打开到第二屏
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子