gpt4 book ai didi

python - 如何使用API​​将图像文件写入OpenERP的二进制字段

转载 作者:行者123 更新时间:2023-12-01 05:43:41 24 4
gpt4 key购买 nike

我使用 python Bottle 创建了一个 api 来访问 OpenERP REST API。

我的问题是上传图像文件并将其写入 OpenERP 中的二进制字段

它会引发 TypeError,“除非启用了allow_none,否则无法编码(marshal) None”

这里我上传了我的代码

from bottle import get, post, run,request,error,route,template
@route('/')
def index():
return'''Welcome'''


@error(500)
def custom500(error):
return 'Error while validating data.'

# Advisor Creation Start #

@get('/advisor') # or @route('/advisor')

def advisor_form():
form ='''<form method="POST" action="/advisor" enctype="multipart/form-data">
Photo:<input name="photo" type="file"/><br>
<input type="submit" />
</form>'''
return form

@post('/advisor') # or @route('/advisor', method='POST')
def advisor_submit():
import xmlrpclib
username = 'uname'
pwd = 'pwd'
dbname = 'db'

photo = request.files.get('photo')
print photo,"L:K<:L"
sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
try:
uid = sock_common.login(dbname, username, pwd)
except("Error username or password"):
print "sock_common error"
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')
res={
'consultant_photo':photo
}

advisor_id = sock.execute(dbname, uid, pwd, 'res.advisor', 'create', res)
return 'Advisor Created!'
# Advisor Creation End #
run(host='localhost', port=8000)

最佳答案

这是在上传的文件准备发送到 OpenERP 之前您必须要做的事情

获取文件指针

photo  = request.files.get('photo')

读取文件数据

photo_data = photo.file.read()

使用base64编码

base64.b64encode(photo_data)

现在您可以将此数据传递给openerp

关于python - 如何使用API​​将图像文件写入OpenERP的二进制字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16805289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com