码迷,mamicode.com
首页 > Web开发 > 详细

odoo controllers 中type="Json" 或type="http"

时间:2020-03-02 01:07:31      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:ima   server   nbsp   api   return   无法   block   ace   ati   

服务端接收参考:

# 导包
from odoo import http
class HttpRequest(http.Controller):
    @http.route(/url, type=json, auth=public, website=True)
    def server_method(self, *args, **kwargs):
        # *args, **kwargs接收参数
        pass
# route中的参数可以参考odoo/http.py文件里def route(route=None, **kw)方法
# type在这里选择json

提供一个操作model(创建、修改)报权限问题的解决方法:

# 需要导入odoo
import odoo
# http.request.env[‘model‘].create() 前加入下面这句话,会用超级管理员执行操作。若担心问题的话,可以使用登录的方法,这里暂不做演示
http.request.uid = odoo.SUPERUSER_ID
  • 客户端发送参考

  • import requests, json
    data = {"params":param} 
    # 这个param代表需要传入的参数,params这个key非常重要,只有带了这个key,服务端才能接受到参数
    # 可以参考odoo/http.py文件里 class JsonRequest(WebRequest) 类,明确说明了
    requests.post(url=http://localhost:8069/url, data=json.dumps(data))
    # 说明一下,resquest中post这个api会根据data的数据类型自动转换请求头里Content-Type对应的参数

     

或者通过工具postman测试:

技术图片

 

 

最后值得注意的地方

    • 服务端
      type=‘json‘
    • 客户端
      data中一定要加入params
      数据需要转成Json

 

 

案例1

 

如何使用type =’json’在Odoo控制器中获取JSON数据?

 

 

odoo controllers 中type="Json" 或type="http"

标签:ima   server   nbsp   api   return   无法   block   ace   ati   

原文地址:https://www.cnblogs.com/1314520xh/p/12392935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!