python - 使用 Electron 应用程序时如何从 Angular 组件与 Python 后端通信?

标签 python angular electron

我正在尝试使用 Electron 创建桌面应用程序。
我的要求是前端使用 Angular,后端使用 python(应该与 SQLite 数据库通信)。

这是我准备好的:

  • 我有由 Angular 7 和 Material
  • 创建/设计的前端 Web 应用程序
  • 我还有 10 个纯 Python 文件(没有任何框架),只要从 Web 应用程序中单击按钮,它们就应该执行一些后端逻辑。
  • Electron 环境已准备就绪,main.js 指向 Angular index.html 文件。
  • Python 文件位于一个单独的文件夹中,尚未连接到任何东西。

  • 当我启动 Electron 时,应用程序启动,我可以看到 Angular Web 界面。 我剩下要做的就是在单击按钮时将请求发送到后端(python 文件)。

    到目前为止我所知道和尝试过的:
  • 将 ngx-electron 模块添加到我的 Angular 组件 import { ElectronService } from "ngx-electron"
  • 我用 ipcRenderer.send('aaa', data)发送数据和ipcRenderer.on('bbb', () => {})从主进程获取响应
  • 在主进程(main.js)中,
    ipcMain.on('aaa', (e, filename) => { // exec(pythonfile params); e.sender('bbb', response); })


  • 问题:

    这是正确的方法还是有更简洁的解决方案在 Angular 和 python 之间发送和接收数据?

    我觉得当你有很多请求时,那些听众会变得困惑,不确定。我一直使用更干净但从未使用过进程间通信的 HTTP 请求...

    最佳答案

    我没有这样做,但我怀疑可以这样实现:

    您需要节点到 run a python script :

    let process = spawn(‘python’, [“./d_alembert.py”]);
    

    还有更多answers here .

    虽然 Electron 应用程序基本上可以在任何操作系统上运行,但尚不清楚其他用户是否会安装 python(Mac OS 附带它,Windows 没有)。所以它可以在你的机器上工作,但不能在别人的机器上工作。

    关于python - 使用 Electron 应用程序时如何从 Angular 组件与 Python 后端通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54930486/

    相关文章:

    python - Aerospike - Python 客户端 - NoSQL 基准测试

    python - 如何从上传文件中删除内容处置

    html - 两行而不是单行的 Angular 重复

    angular - *ngIf 语句中 else 部分不执行

    javascript - 使用在 TypeScript 的其他模块中声明的别名调用函数

    javascript - 在主渲染器和渲染器之间加载 html 后获取消息时出现问题

    electron - 有没有办法让 Electron 可执行文件在没有其他文件的情况下运行?

    python - 从调用者的全局变量中获取变量。什么是框架对象?

    python - 让 Python 对象的单个实例监听 future 参数的顺序

    electron - 装有托盘时,是否可以将 window 最小化?