python二次开发odoo_odoo二次开发 - 战鹏的Blog - OSCHINA - 中文开源技术交流社区
#odoo
Odoo 的前身是 OpenERP,是一个开源的企业 ERP 系统。odoo官网
通过官网可以看到odoo可以干很多事情,例如销售、CRM等等。
#odoo文档
我们可以在odoo文档看到用户手册、开发者文档、API、安装说明、白皮书、法律文件。
由于我们要对odoo进行二次开发,则我们需要访问API文档。
#Web Service API
在odoo文档-API部分,我们将会访问的是web Service API,通过该文档,我们可以了解到,odoo的API通信方式,是通过xmlrpc方式进行远程调用。
#测试代码
# encoding=utf8
import xmlrpclib
# Connection
url = "https://demo.odoo.com"
db = ""
username = "admin"
password = "admin"
# 通过demo服务器的start函数获取,实际测试的服务器的url,db,username,password
info = xmlrpclib.ServerProxy('https://demo.odoo.com/start').start()
url, db, username, password = info['host'], info['database'], info['user'], info['password']
print "[url]:" + url
print "[db]:" + db
print "[username]:" + username
print "[password]:" + password
# Logging
common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
print "Method version:" + str(common.version())
uid = common.authenticate(db, username, password, {})
# print "[uid]:" + str(uid)
# # Calling methods
models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
result = models.execute_kw(db, uid, password,
'res.partner', 'check_access_rights',
['read'], {'raise_exception': False})
print result
# Create records
id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{
'name': "中文测试",
}])
print "[id]:" + str(id)
[record] = models.execute_kw(db, uid, password,
'res.partner', 'read', [id])
print record
#形成类
20160816添加测试类
##测试类
from unittest import TestCase
import datetime
from OdooServerApi import OdooServerApi
class TestOdooServerApi(TestCase):
def test_get_uid(self):
print "test_get_uid"
server = OdooServerApi()
print "[uid]:" + str(server.get_uid())
pass
def test_get_mac_address(self):
server = OdooServerApi()
print "[mac_address]:" + str(server.get_mac_address())
pass
def test_update(self):
start_time = datetime.datetime.now() - datetime.timedelta(hours=8)
print start_time
end_time = start_time + datetime.timedelta(hours=10)
print end_time
server = OdooServerApi()
server.update(start_time,end_time)
pass
##OdooServerApi类
import uuid
import xmlrpclib
class OdooServerApi:
url = "http://192.168.1.120:8069"
db = "Workload Account"
username = "testimporter@test.test"
password = "123456"
uid = None
mac_address = None
def __init__(self, url=None,db=None,username=None,password=None):
if url is not None:
self.url = url
if db is not None:
self.db = db
if username is not None:
self.username = username
if password is not None:
self.password = password
def get_uid(self):
common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(self.url))
print "Method version:" + str(common.version())
uid = common.authenticate(self.db, self.username, self.password, {})
print "[uid]:" + str(uid)
self.uid = uid
return self.uid
def get_mac_address(self):
mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
self.mac_address = ":".join([mac[e:e+2] for e in range(0,11,2)])
return self.mac_address
def update(self, start_time, end_time, mac_address=None,uid=None):
if uid is None:
self.get_uid()
if mac_address is None:
self.get_mac_address()
models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(self.url))
models.execute_kw(self.db, self.uid, self.password, 'workload_account.raw_data', 'create', [{
'mac_address': self.mac_address,
'start_time': str(start_time),
'end_time': str(end_time)
}])
python二次开发odoo_odoo二次开发 - 战鹏的Blog - OSCHINA - 中文开源技术交流社区相关推荐
- python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...
python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...
- python蓝牙上位机开发_python做上位机 - osc_2frv0wjp的个人空间 - OSCHINA - 中文开源技术交流社区...
参考文章: https://blog.csdn.net/dgut_guangdian/article/details/78391270 https://www.cnblogs.com/lanceyu/ ...
- java开源笔记软件下载_开发常用软件笔记 - ZhaoQian's Blog - OSCHINA - 中文开源技术交流社区...
notepad++ 使用快捷键Ctrl+H打开"替换对话框",在每行的开头添加内容. 勾选左下角的"正则表达式"选项 在"查找目标"里输入上 ...
- 华为路由器用Linux开发,华为路由器常用配置 - osc_1v2pb1nt的个人空间 - OSCHINA - 中文开源技术交流社区...
该设备有 2个光口.8个电口 Interface IP Address/Mask Physical Protocol GigabitE ...
- python羊车门问题_羊车门问题 - osc_wq8j2a9a的个人空间 - OSCHINA - 中文开源技术交流社区...
题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...
- python 点云重建,点云 表面重建 - osc_0tk7cpde的个人空间 - OSCHINA - 中文开源技术交流社区...
啊哈 最近在参加一个数学建模的比赛 要求是对一个果子里面的虫洞进行三维模型重建 但是百度之后并没有找到对点云数据直接重建的方法(很少) 整个代码是python写的 里面的各种库似乎有一个是可以做这个的 ...
- python倒排索引实现_倒排索引原理和实现 - uncle_LLD的个人空间 - OSCHINA - 中文开源技术交流社区...
关于倒排索引 搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档.怎么快速找到包含某个关键词的文档就成为搜索的关键.这里我们借助单词--文档矩阵模型,通过这个模型我们可以很方便知道某篇文档 ...
- python 博客程序_项目1——博客系统 - Python测试和开发 - OSCHINA - 中文开源技术交流社区...
一.绪言 今天又来更新博文了,学习Java也已经有一段时间了,经过这段时间的学习,我对Java有了更深一层的理解.从刚开始的HelloWorld到了现在的小型网页项目,这中间也经历了很多.话不多说,下 ...
- python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...
mqant mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即 ...
最新文章
- CVPR2021深度框架训练:不是所有数据增强都可以提升最终精度
- 通过mem函数在MicroPython中访问模块寄存器
- docker 删除所有容器和镜像的命令
- java中事物的注解_编程式事务、XML配置事务、注解实现事务
- STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波
- 从17 个方面对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 等分布式消息队列
- CFS完全公平调度类
- Idea编写简单Java网络爬虫程序(maven)
- c语言bmp图片读取融合保存,BMP_READ_WRITE 完全用C语言实现BMP图像的读取和保存 - 下载 - 搜珍网...
- 服务器数据恢复成功案例+服务器数据恢复 原理
- Java日志体系(三) jul 配置文件详解,日志示例
- MyRolan (快速启动小工具)
- Matplotlib中画图,使用带有边框的条线
- Python全栈 Web(前端三剑客之JavaScript 从小白鼠到武林盟主)
- Cesium for Unreal 数据加载 场景漫游 粒子效果 视频监控 VR预览
- 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档)
- https://www.toutiao.com/a6457425756212429325/?tt_from=mobile_qqutm_campaign=client_shareapp=news_a
- 3、Qt5 主窗口点击按钮 弹出另一个自定义窗口
- Java面试题:数据库优化策略有哪些?
- 20190625 前端开发日报
热门文章
- android 自定义 对号,Android自定义View实现打钩动画功能
- pdo mysql 事务_PHP PDO对象如何确定它是否已经存在于MySQL事务中?
- android 动画后的位置,Android:Comp之后会重置动画位置
- python考试pass or fail_Pytest官方教程-12-skip及xfail: 处理不能成功的测试用例
- gnuplot画图命令_Gnuplot科学绘图(二十六)——image 绘图
- linux基础命令怎么记,linux基础命令--笔记(示例代码)
- socket python udp_python-socket UDP
- 创意美食海报psd分层模板,开启奇思妙想
- 设计资源 | 万圣节矢量图标
- 【乐理知识】第二章 音符 休止符