网站改版索引量下降,福州外贸网站制作,深圳东门老街美食攻略,呼和浩特城乡建设网站odoo16-API#xff08;Controller#xff09;带有验证访问的接口
目前我使用odoo原生的登录token来验证登陆的有效性
废话不多说直接上代码
# 测试获取session_id
import requests
class GetOdooData(http.Controller):def getOdooToken(self):# http://localhost:8123访问…odoo16-APIController带有验证访问的接口
目前我使用odoo原生的登录token来验证登陆的有效性
废话不多说直接上代码
# 测试获取session_id
import requests
class GetOdooData(http.Controller):def getOdooToken(self):# http://localhost:8123访问odoo的路径后面的web/session/authenticate固定写法请不要动url http://localhost:8069/web/session/authenticate# 传入需要访问的数据库名称登录账号与密码data {params: {db: devodoo16.0,login: odoo,password: odoo,}}headers {Content-type: application/json}response requests.post(url, headersheaders, jsondata)# 从服务器返回的响应信息中获取名为session_id的cookie的值并将其返回。return response.cookies[session_id]http.route(/test, typejson, authnone, cors*, csrfFalse)def test(self, **kw):odootoken self.getOdooToken()return odootoken# 用此代码进行接口测试查看前端是否拿到了session_id
我这是把数据库用户密码直接写死用来测试的你也可以把用户密码改为前端传参数形式这里就不阐述了···想要的话私信发你 修改接口验证authuser 的
代码如下 http.route(/getdata, typejson, authuser, cors*, csrfFalse)def getdata(self, **kw):# dingdan_h 4900145711dingdan_h kw.get(dingdan_h)print(dingdan_h,dingdan_h)dingdan request.env[dc.kaishik.dd].sudo().search([(dingdan_h, , dingdan_h)])#随便找个模型查询一条数据if not dingdan:back_data {code: 300, msg: 订单不存在}return (back_data)data {dingdan_h: dingdan.dingdan_h,dingdan_lx: dingdan.dingdan_lx,jiaohuo_date: dingdan.jiaohuo_date,}back_data {code: 100, msg: 查询订单成功, data: data}print(back_data,back_data)return (back_data)
重启刷新访问getdata接口并且在前端的Headers头部写入keyX-Openerp-Session-Idvalue填入刚刚拿到的cookie 就可以拿到数据
如果在前端的Headers头部 不填写 keyX-Openerp-Session-Id 那么返回就为如下 以上 溜了 ~~~ Bye ~