DTCloud编码规范
DTCloud模块提交到gitee仓库的要求:
内容:DTCloud模块工程创建要求与代码开发规范
地址:https://gitee.com/dtcloud360
1、manifes文件的书写要求
manifest.py 文件
清单文件用于将python软件包声明为模块,并指定模块元数据
# -*- coding: utf-8 -*-
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
# DTCloud360
# QQ:35350428
# 邮件:35350428@qq.com
# 手机:13584935775
# 作者:'amos' --->改成自己名字
# 公司网址: http://www.dtcloud360.com/
# Copyright 中亿丰信息科技(苏州)有限公司
# 日期:2021/10/15
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
{'name': 'DTCloud 基本功能教学','version': '1.0','category': '基础','summary': '设置模块关键词','description': """对当前模块做出描述 """,'author': 'Amos','website': 'http://www.dtcloud360.com/','depends': ['base','mail', 'Amos_WorkFlow'],'data': ['security/ir.model.access.csv','data/amos_demo_data.xml','views/amos_demo.xml','views/amos_a.xml',],'demo': [],'installable': True,'application': True,'auto_install': False,
}
注意点:
- ‘category’: dtcloud中应用模块的分类依据,尽管建议使用现有类别,但该字段为自由格式,并且会即时创建未知类别。可以使用分隔符 / 创建类别层次结构,例如,SALE/Bar 将创建一个类别Foo,一个类别Bar作为Foo的子类别,并将其模块的类别设置为Bar。
- 其他字段说明:
name 模块名称:用于显示模块的名称
summary 关键词 :设置模块关键词
description 模块说明:模块的描述信息
author 作者:模块的创建者
website 网站 :网站地址
category 类别 :该模块的类别
version 版本号 :版本还号
depends 依赖模块 :依赖模块列表,本模块所依赖的模块,安装本模块会同时安装依赖的模块
data 加载的处理文件,总是加载
demo 只加载演示模式
installable 是否可安装 :bool型数据,用于说明该模块是否可以被安装
application 是否是应用程序 :bool型数据,用于说明该模块是否为应用程序 这里设置为True,即可在应用中看到该模块
2、工程目录规范
2.1 工程文件结构目录
2.2 各个文件夹使用讲解
- init.py:Python代码由 init.py加载,通过该文件导入.py文件及代码子目录。子目录中包含的Python代码,再由其内部的__init__.py导入。
- manifest.py:模块声明文件,manifest.py文件中对当前模块进行一些描述声明。例如:data和demo键名所声明的是供加载的数据文件,通常是用户界面、fixture数据和演示数据中会使用到的XML和CSV文件。还可使用YAML文件,可以包含一些模块加载时运行的过程指令,例如,通过程序生成或更新记录而非在XML文件中加入数据。
- controllers:自定义的控制器实现,自定义一些网页或功能可通过Controller实现,包含网站控制器的代码文件,用于为模块提供各种功能。
- data:初始化数据文件目录
- demo:包含带演示数据的数据文件,对于测试、培训或模块评测都非常有用。
- i18n:国际化文件目录,针对不同语言有相应的翻译文件与其对应,用户登录成功后在首选中修改语言后,系统会自动查找相应的翻译文件
- models:包含后端代码文件,模块中使用到的所有对象模型,相应的业务逻辑代码都在次目录下的文件中,模型对象继承自models.Model
- security:权限控制目录,ir.model.access.csv文件中保存不同用户分组对相应模型对象的增删改查的权限控制。
- static:静态资源目录。description目录是一个项目描述目录,icon.png是模块的图片,在应用看板中可以看到;此文件名称都是固定的,图片尺寸最好是100*100;也可在此目录下使用一些html格式的文件对模块做一个描述。src目录是一些资源目录如:js、css、images、xml
- views:视图文件目录。models目录下的模型对象的视图文件,如表单视图、列表视图、搜索视图、看板视图等等
其他文件目录: - wizard:向导目录。向导模型在数据库中也会建立相应的数据库表,向导保存的是一些临时使用的数据,视图上多以弹出框形式展示,向导产生数据为临时数据不会长时间在数据库中保存,模型对象继承自models.TransientModel
- doc:模块说明文档目录
- report:模块中有关的报表模型或者相应报表视图文件
- README.md文件:必需有的【文件】
---------------
安装说明:xxxxxxxx 说明。 例如:依赖包版本、安装在方式、适用系统
-----------------------
模块功能点:xxxxxxxx 说明。例如:模块功能,适用的的业务场景
----------------------
使用说明:xxxxxxxx 说明。例如:是需要配置系统参数
----------------------
3、模块命名
模块命名以该工程的功能是什么来命名:像原生的:sale、stock、purchase
4、代码书写规范
- 模块(modele)命名使用业务相关的英文单词或单词组合。例如:school,school_inventory。
- 模型(model)命名使用"."连接具有该模型业务相关的单数形式的英文单词。例如:res.partner,pay.payment,pay.refound。
- 模型的class类名使用模型名的驼峰命名。例如:ResPartner,PayPayment,PayRefound
- python文件使用首字母小写的驼峰命名,使用"_"连接。例如:pay_partner,pay_payment。
- view视图使用小写字幕的下划线+view命名,例如:pay_partner_view.xml pay_payment_view.xml
- 在模型中定义外键时使用外键模型名关键字+"_id"命名,one2many用ids,例如:order_id,line_ids.
- 业务代码中模型的实例使用模型关键字命名,复式形式加s。例如product products
- 业务代码中模型的字典数据使用模型名关键字+”dict“命名,字典列表数据使用模型名关键字+”_list“命名。例如:product_dict product_list
- 业务代码中模型的实例id使用模型名关键字+”_id“命名,复数形式加s。变量是int或list类型。例如:order_id order_ids
- 临时变量使用vals,params,fields,line,item等
- 业务代码中变量使用下划线命名规则。例如product_list,user_name
5、常用方法
ORM是一个完整的对象关系映射层是开发人员不必编写基本的SQL管道
- create(vals):在数据表中插入一条记录,返回新对象。
- search(domain):查询符合条件的对象列表,返回对象列表。
- search(domain, limit=1):查询符合条件的一个对象,返回一个对象。
- search_read(domain, fields):查询符合条件的字典列表。返回指定fields的字典列表。
- browse(id):浏览对象及其关联对象。返回对象。
- browse([ids]):浏览对象列表,返回对象列表
- browse(id).read(fields):浏览对象及其关联对象,返回字典
- search(domain).read(fields):返回记录集的指定字段值列表。返回字典列表
- write(vals):保存一个或几个记录的一个或几个字段。返回布尔值,True
- unlink():删除一个或几个记录
- default_get:复位一个或多个字段的缺省值
- default_set:重置字段的缺省值
DTCloud编码规范相关推荐
- JavaScript最全编码规范
转载: JavaScript最全编码规范 类型 ●基本类型:访问基本类型时,应该直接操作类型值 ●string ●number ●boolean ●null ●undefined var foo = ...
- 【C++】Google C++编码规范(三):智能指针
[C++]Google C++编码规范(一):作用域 [C++]Google C++编码规范(二):类 std::unique_ptr std::unique_ptr是C++11标准里新推出的智能指针 ...
- 《阿里巴巴编码规范(JAVA)》学习认证考后感
image.png <阿里巴巴 Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者. 本手册的 ...
- google python代码规范_如何用好python编码规范,写一手漂亮的代码
前一段时间在编写python 代码的时候编辑器中一直在提示规范问题,因为强迫症的原因,我决定遵循python 的编码规范去编码,然后把需要注意的点记录下来, 帮助自己和大家一起成长. 这是我的main ...
- Python最简编码规范
0.前言 本文是阅读<Python Coding Rule>之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考 ...
- 华为java安全编码规范_Java安全编码之SQL注入
随着互联网的发展,Java语言在金融服务业.电子商务.大数据技术等方面的应用极其广泛.Java安全编码规范早已成为SDL中不可或缺的一部分.本文以Java项目广泛采用的两个框架Hibernate和My ...
- 分享GitHub上一位老外的嵌入式C编码规范(收藏细读)
简 介: 本文分析在头条上分享GitHub上一位老外的嵌入式C编码规范(收藏细读):嵌入式大杂烩. 关键词: 嵌入式,C语句,编程规范 分享GitHub上一位老外的嵌入式C编码规范(收藏细读) §01 ...
- PHP标记风格,编码规范
PHP标记风格 PHP一共支持4种标记风格 <?php echo "这是XML风格的标记"; ?> 脚本风格 <script language="php ...
- Go 语言编程 — 编码规范指南
目录 文章目录 目录 参考 工程化要求 编码规范 大小约定 缩进.括号和空格约定 命名规范 包.目录命名规范 文件命名规范 标识符命名规范 变量.常量名 函数.方法名 结构体.接口名 空行.注释.文档 ...
- python 编码规范 PEP8整理
我是用Python的IDE:pycharm来编写Python代码的,用IDE编写代码有一个好处就是语法高亮,智能提示.Python的代码样式规范称之为PEP 8规范,每次编写代码如果有出现不符合PEP ...
最新文章
- ArrayList源码学习
- 英特尔大地震!解雇首席工程官,7纳米延期,或面临集体诉讼……
- 2019上海车展展后报告(整车篇)
- ginkgo测试介绍
- PHP设计模式 -- 策略模式
- Go安装swagger:swagger的安装与使用
- 走近分形与混沌(part4)--牛顿与混沌
- spring boot 集合mysql_Spring boot整合mysql和druid
- JavaScript字符串String常用方法介绍
- 安装Vim,提示“Could not get lock......”
- 从高斯消元到矩阵的三角分解(LU)
- 图像的连通域标记算法及工具介绍
- hijson,64位百度云永久免费,这是一个爱分享的世界
- 进程之间有哪些通信方式
- bugly android升级,Android项目引入bugly在线更新
- 深度linux12.12安装,深度Linux 12.12 Alpha发布
- learn the python in hard way习题36~39的附加习题
- 电机或编码器相关的 CW 与 CCW
- 会议OA之会议排座送审
- Java校招面经_小米java校招面经,面试题整理(一面)