Python
文章平均质量分 53
FightingVicki
进击的程序媛
展开
-
Python的一些内置方法们
capitalize():把字符串的第一个字符改为大写casefold():把整个字符串的所有字符改为小写swapcase():大写变小写,小写变大写* 操作中并不改变str本身的值center(width):字符串居中,使用空格填充长度为width的空字符串count(sub,[,start[,end]]):返回sub在字符串里边出现的次数,start原创 2016-09-09 15:23:50 · 1090 阅读 · 0 评论 -
Odoo入门-对象属性、参数
新建openerp模块四个重要部分:__init__.py__openerp__.pyviewsPython文件.py __init__.py:它用 import 引入这个模块的各种 python 文件。openerp.py是OpenERP的一个模块声明。模块中定义了几个重要的信息。如下:{ 'name' : 模块名称, ‘su原创 2016-09-19 13:48:33 · 1966 阅读 · 0 评论 -
odoo之onchange、约束、高级视图
默认值name = fields.Char(default="Unknown")user_id = fields.Many2one('res.users', default=lambda self: self.env.user)self.env可以是请求的参数或者其他self.env.cr或self._cr是数据库游标对象,用于查询数据库self.env.uid是当前用户的原创 2016-09-22 18:22:00 · 4268 阅读 · 0 评论 -
Odoo中一些方法
create方法在数据表中插入一条记录(或新建一个对象的resource)格式:def create(self,cr,uid,vals,context={})参数:vals:待新建记录的字段值,是一个字典。context(optional):OpenERP几乎所有方法都带参数context,context是一个字典,存放一些上下文值返回值:新建记录的idse原创 2016-09-20 10:34:10 · 4646 阅读 · 0 评论 -
odoo之模块字段(Fields)
字段Fields定义了model 可以保存什么、存在哪里。Fields定义成 model 类的属性:from openerp import models, fieldsclass LessMinimalModel(models.Model): _name = 'test.model2' name = fields.Char()常见属性字段 fields 可转载 2016-09-20 15:24:21 · 8868 阅读 · 0 评论 -
odoo-Action菜单
数据文件Odoo是一个高度数据驱动的系统, 虽然使用Python代码来定制模块行为, 但很多模块数据是在其载入时setup的, 并且有些模块仅仅为Odoo添加数据.通过数据文件来定义模块数据, 例如可以使用XML文件中的元素定义数据, 每一个元素创建或者更新数据库中的一条记录, 形式如下: {a value}转载 2016-09-20 15:32:37 · 3589 阅读 · 0 评论 -
odoo之工作流---一些属性含义
工作流和商业对象关联,描述他们的动态模型运动规律,随着时间的推移还可用于追踪过程。工作流可以和odoo中任意对象关联,是完全可定制的,工作流用于架构和管理商业对象和文档的周期,定义transitons,触发器等等。一个模型关联的工作流在模型记录创建的时候创建.工作流定义属性:model:固定取值"workflow"id:任意值,唯一标识本工作流name: 工作流的名原创 2016-09-26 17:10:09 · 960 阅读 · 0 评论 -
odoo9.0---ORM API
-----记录集------在模型中定义的方法在一个记录集中执行,他们的self就是一个记录集。某一个模型(类)的所有对象(具体的实例)的集合就是一个Recordset对象。——这是recordset最大的情况,一个重要的限定条件就是其内元素必定是相同模型的,由这个最大的集合情况然后删除过滤掉一些元素(记录)之后仍然是recordset对象。class AModel(models.原创 2016-09-26 18:14:32 · 1496 阅读 · 2 评论 -
odoo报表
* odoo8 采用是Qweb报表,废弃了7.0中的RML报表 * 创建业务报表 报表是通过Qweb的技术来建立的 #一般报表结构如下: purchase ├ views │ ├ report_purchaseorder.xml (报表模板) │ ├ report_purchasequotai转载 2016-09-27 17:11:11 · 2399 阅读 · 0 评论 -
odoo之Qweb的一些参数
注册报表:@string: 在打印按钮那里的显示名称 @id:外id标识 @name: 完整主模板名称 模块名.主板模名称 用于管理和调用 @file: 完整模板文件名 模块名.模板文件名 用于更好地关联模板 @model:相关的模型显示在那个模块进行打印报表 通常在各视图中的打印那里会出现上原创 2016-09-27 17:55:05 · 2150 阅读 · 0 评论 -
odoo打印pdf报表--固定div块在页面底部
整个页面置于一个class为“page”的中,设置为“relative”相对定位,设置一个页面最小高度。(一页A4纸29.7cm)代码如下:在需要置于底部的中,添加“absolute”绝对定位,设置距离底部距离。原创 2016-09-28 18:06:35 · 2008 阅读 · 0 评论 -
python中date、datetime、string的相互转换
import datetimeimport timestring转datetimestr = '2012-11-19'date_time = datetime.datetime.strptime(str,'%Y-%m-%d')date_timedatetime.datetime(2012,11,19,0,0)datetime转string转载 2016-12-02 16:41:23 · 31765 阅读 · 0 评论 -
Python3.x和Python2.x的区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。 2.编码 Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的: >>> 中国 = 'china' >>>转载 2016-12-16 09:25:11 · 455 阅读 · 0 评论 -
python--简单爬虫
一,获取整个页面数据 首先可以先获取要下载图片的整个页面信息。getjpg.py#coding=utf-8import urllibdef getHtml(url): page = urllib.urlopen(url) html = page.read() return htmlhtml = getHtml("http://tieba.bai转载 2016-12-19 14:07:33 · 535 阅读 · 2 评论 -
正则表达式--部分整合
通配符正则表达式可以匹配多于一个的字符串,可以使用一些特殊字符创建这类模式。比如点号(.)可以匹配任何字符。在我们用window 搜索时用问号(?)匹配任意一位字符,作用是一样的。那么这类符号就叫通配符。 对特殊字符进行转义通过上面的方法,假如我们要匹配“python.org”,直接用用‘python.org’可以么?这么做可以,但这样也会匹配“pythonzorg”,这可不是所原创 2016-12-19 14:11:40 · 726 阅读 · 0 评论 -
odoo8的API装饰
one装饰器的作用是对每一条记录都执行对应的方法,无返回值。model装饰器的作用是返回一个集合列表,一般用来定义自动化动作里面,该方法无ids传入。constrains装饰用于对字段进行限制@api.constrains('age')def _check_age(self): if self.age raise ValueError(_转载 2016-09-25 18:43:12 · 1165 阅读 · 0 评论 -
文件的读取
文件的输入和输出********************************************************************要在文件路径前面写个r或者R,即r"D:\K\test.txt"。这是使用原始字符串特性,即在字符串的前面已R或者小写字母r开始,则字符串不对\进行转移,直接输出,通常用于表示windows的路径。*****************原创 2016-09-18 17:50:04 · 239 阅读 · 0 评论 -
Python之集合
创建用集合的工厂方法set()和frozenset()>>> s = set('cheeseshop')>>> sset(['c', 'e', 'h', 'o', 'p', 's'])>>> t = frozenset('bookshop')>>> tfrozenset(['b', 'h', 'k', 'o', 'p', 's'])>>> len(s) == len(t)Tr原创 2016-09-18 17:47:08 · 405 阅读 · 0 评论 -
字符串的格式化
“:”表示格式化符号的开始“1”:四舍五入保留1位定点数“f”:打印定点数和C语言类似:%c 格式化字符ASCLL码%s 字符串%d 整数%o 无符号八进制数%x 无符号十六进制%f 定点数%e 科学计数法定点数字符串转义\b 退格\t 横向制表\v 纵向制表\f 换页\0 空字符原创 2016-09-09 16:14:49 · 247 阅读 · 0 评论 -
序列,序列--常见BIF
list():把一个可迭代对象转化为列表可通过help(list)查看max():返回最大值字符串比较通过ascll码值min():返回最小值sum(iterable[,start=0])返回序列iterable和可选参数start的总和(为神马不是16.8呢?????????)sorted():自小到大排序要原创 2016-09-09 16:42:09 · 537 阅读 · 0 评论 -
Python的灵活性--初级函数
函数文档:对函数的内容参数意义返回值来解释普通函数,基本和C语言相似带参函数收集参数参数前加一个“*”则为收集参数,即为可变参数Python机制:把标记为收集参数的参数用元组打包起来 若不止有一个收集参数,需要给其他参数默认参数原创 2016-09-10 13:41:51 · 560 阅读 · 0 评论 -
函数与过程
有返回值的叫函数,无返回值的是过程。严格来说,Python只有函数,没有过程。就算没有返回值,Python也会返回一个None对象。原创 2016-09-10 15:31:38 · 342 阅读 · 0 评论 -
闭包,lambda以及倆牛叉BIF
global关键字:可以修改全局变量闭包:如果在一个内部函数里,对在外部作用域的变量(x),内部函数是一个闭包。fun2就为一个闭包。 lambda 表达式,可以省下定义函数的过程,使得代码更加精简。对一些比较抽象并且整个程序执行下来只需调用一两次的函数,使用lambda也省去了命名的问题。简化代码的可读性,省去函数阅读要从def明明部分原创 2016-09-11 23:17:01 · 829 阅读 · 0 评论 -
双重循环打印十位比个位少的数字
对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数for x in [1, 2, 3, 4, 5, 6, 7, 8, 9]: for y in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: if x < y: print x * 10 + y原创 2016-09-12 22:38:22 · 1871 阅读 · 1 评论 -
一些基础-变量变换、标识符、对象
Python中的变量交换>>> x,y = 1,2>>> x1>>> y2>>> x,y = y,x>>> x,(2,)>>> y1>>> x2>>>原创 2016-09-12 15:02:35 · 350 阅读 · 0 评论 -
Python中正则表达式
转载 2016-09-13 17:05:40 · 304 阅读 · 0 评论 -
用Eclipse编写Python程序(导入已有模块)
File-New-PyDev Project选择“Create links to existing sources(select them on the next page)”把模块导入,选择“Add external source folder”原创 2016-09-14 10:40:00 · 7706 阅读 · 0 评论 -
工厂方法和工厂函数
工厂方法(Factory Method)模式又称为虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,属于类的创建型模式。在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实体化哪一个类。在简单工厂模式中,一个工厂类处于对产品类进行实转载 2016-09-14 14:29:41 · 6477 阅读 · 0 评论 -
Python--映像和集合类型(字典)
***********************************************************如果没明确定义,默认集合类型是元组。最好显示的创建元组。***********************************************************字典:不可变对象的值是不可改变的,意味着他们通过hash算法得到的总是一个值。这是作为字典键值的原创 2016-09-14 18:07:01 · 539 阅读 · 0 评论 -
python 单下划线/双下划线使用总结
Python 用下划线作为变量前缀和后缀指定特殊变量/方法。 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_object被看作是“私有 的”,在模块或类外不可以使用,不能用'from module import *'导入。当变量是私有的时候,用_object来表示变量是很好的习惯。因为变量名__object_转载 2016-09-17 17:22:22 · 500 阅读 · 0 评论 -
颠倒字典中的键和值
def changedict(dic): mydict = {} for key in dic: mydict.update({}.fromkeys(dic[key],key)) print mydict >>> changedict(dict1){'a': 1, 'c': 3, 'b': 2}原创 2016-09-18 10:06:01 · 2121 阅读 · 0 评论 -
输入姓名编号排序
用户输入一组雇员姓名和编号。程序可以提供按照姓名排序输出的功能,雇员姓名显示在前面,后面是对应的雇员编号。dict1 = {}while True: name = raw_input("Enter name:") if name == 'done': break number = raw_input("Enter the number:") d原创 2016-09-18 10:22:45 · 1809 阅读 · 0 评论 -
(字典)rot13加密
编写一个"rot13"翻译器。"rot13"是一个古老而又简单的加密方法,它把字母表中的每个字母用其后的第13 个字母来代替。字母表中前半部分字母将被映射到后半部分,而后半部分字母将被映射到前半部分,大小写保持不变。举例来说,'a'将被替换为'n','X'将被替换为'K'; 数字和符号不进行翻译。import stringupperdict = {}lowerdict = {}up原创 2016-09-18 10:44:42 · 2799 阅读 · 0 评论 -
一行神奇python
让我们用一行代码画一个Mandelbrot:>>> print'\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))2 else' 'for x in range(-80,20)])f转载 2017-06-15 09:16:02 · 1392 阅读 · 0 评论