帆软调用python接口

背景:

买的厂家的器材,可以扫描器材上的二维码获取器材信息,但是公网可以访问,公司内网无法访问
 

需求:
把厂家二维码的信息拿出来,放到公司自己的二维码中,并制作标签

实现思路:

1.调用帆软扫码工具,来获取源二维码信息

对于扫码输入文本控件

对于调用API按钮控件添加点击事件

JS代码如下:

// 获取参数
var a = _g().parameterEl.getWidgetByName("标志明码").getValue();
// 目标网址
console.log(a)
const url = `http://XXXXXX/test?a=${encodeURIComponent(a)}`;
// 创建一个新的 XMLHttpRequest 对象
const xhr = new XMLHttpRequest();
// 设置请求方法和目标 URL
xhr.open('GET', url, true);
// 监听请求状态变化
xhr.onreadystatechange = function () {
  // 当请求状态为完成时
  if (xhr.readyState === XMLHttpRequest.DONE) {
    // 确保请求成功
    if (xhr.status === 200) {
      console.log('Response:', xhr.responseText);
      // 赋予控件实际值
      kongjian= _g().parameterEl.getWidgetByName("textEditor0");
      kongjian.setValue("Response:"+xhr.responseText,false);
    } else {
      console.error('Error:', xhr.status, xhr.statusText);
    }
  }
};
// 发送请求
xhr.send();
// 刷新页面
setTimeout(function() {_g().parameterCommit(); }, 500)

对于标志明码文本控件

2.将信息发送给python自写的接口,处理信息

python自写的接口

@app.route("/test", methods=["get"])  # 指定外网访问的路径和方式,并指定 a 为路径参数
def test():
    # 利用获取到的链接发送请求抓取数据
    a = request.args.get("a")

        # 处理逻辑,我这里因为源二维码的扫描信息是一个链接,所以对这个链接发送请求获取数据,然后处理,入库展示

if __name__ == '__main__':
    print('{:-^30}'.format('接口开始运行'))
    host = 'XXXX'
    port = '5100'
    print('http://{}:{}/'.format(host, int(port)))
    server = pywsgi.WSGIServer((host, int(port)), app)  # 使用WSGI启动服务
    server.serve_forever()

这里用的是

pywsgi.WSGIServer

服务,自己调试的时候,可以直接app.run(),但是这还是测试环境,没有上边的稳定

3.调用接口生成标签

获取到二维码信息之后,自动带出信息

点击打印之后跳转(继承参数)

SELECT * FROM image_result
where 标志明码= REPLACE('${textEditor0}', 'Response:', '')


在生成二维码的单元格插入公式

"<img src=https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=" + B1 + ">"

单元格属性 -- > 其他 --->  显示内容 【用HTML显示内容】

最重要的是帆软访问自写接口的部分,由于是帆软访问python,所以会出现

Access to XMLHttpRequest at 'http:/XXXXX:5100/test/2' from origin 'http://XXXXX.com' has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `private`.

报错信息

原因是帆软和python不同源,跨域访问,被浏览器组织了,尝试了在代码里加入

CORS(app)  # 解决跨域问题

// 设置允许跨域访问的域
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "http://XXXXX.com");
  res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
  res.header("Access-Control-Allow-Headers", "Content-Type");
  next();
});

但是都没解决问题,最后直接使用了粗暴的方法

1.浏览器打开chrome://flags/#block-insecure-private-network-requests页面

 2.找到Block insecure private network requests并将其设置为Disabled

这个时候帆软就可以正常的访问自写接口了,在网上看到如果把两边的域名都改成https也可以,这边没有做尝试,如果有伙伴尝试了,记得留言啊

  • 33
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
帆软context是指帆软旗下的一款低代码开发平台,主要面向企业用户提供快速、简单的应用开发解决方案。帆软Context平台结合了低代码开发模式和大数据分析技术,可以帮助企业快速搭建和部署各种应用,从而提高生产效率和降低开发成本。 帆软Context平台具有丰富的组件库和模板,用户可以通过拖拽和配置的方式快速创建自定义的应用。平台支持多种开发语言和数据库,适合不同的应用开发需求。同时,帆软Context平台还提供了丰富的数据可视化和报表分析功能,可以帮助用户更好地理解和利用数据,为企业决策提供支持。 帆软Context平台采用敏捷开发模式,可以实现快速迭代和灵活的需求变更。开发人员可以借助平台提供的工具和功能实现代码自动生成和重用,提高开发效率。平台还提供了丰富的集成能力,可以与其他系统和服务进行无缝集成,实现更加强大和复杂的应用功能。同时,平台还支持云端部署和管理,方便用户远程访问和维护应用。 总之,帆软Context是一款功能强大的低代码开发平台,可以帮助企业快速搭建和部署各种应用,提高生产效率和降低开发成本。它的丰富组件库、敏捷开发模式和数据分析功能使得应用开发变得简单、快速和灵活。帆软Context平台在企业数字化转型的进程中,将会发挥重要的作用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值