zoukankan      html  css  js  c++  java
  • odoo controllers 中type="Json" 或type="http"

    服务端接收参考:

    # 导包
    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数据?

  • 相关阅读:
    EasyUI前后端分离
    easyUI权限
    EasyUI入门
    MVC(增删改查)
    MYSQL01 CentOS7下搭建mysql5.6
    Linux02:CentOS7配置静态IP
    Linux01:CentOS7桥接模式主机和虚拟机ping不通问题解决
    windows环境01 xampp+phpwind环境搭建
    Python模块之目录
    Django
  • 原文地址:https://www.cnblogs.com/1314520xh/p/12392935.html
Copyright © 2011-2022 走看看