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

时间:2019-02-28 16:44:58

标签: python angular electron

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

我已经准备好了:

  1. 我有由Angular 7和Material创建/设计的前端Web应用程序
  2. 我还有10个纯python文件(没有任何框架),每当从Web应用程序中单击按钮时,它们都应执行一些后端逻辑。
  3. 电子环境已准备就绪,main.js指向Angular index.html文件。
  4. Python文件位于一个单独的文件夹中,尚未连接任何文件。

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


到目前为止我已经知道和尝试过的内容:

  • 将ngx-electron模块添加到我的Angular组件In main(): 5 Menu ========== 1. Add a player and score 2. Show top 10 players & scores 3. Search for a player 4. Remove a player 5. Exit to main menu ========== Option: 5 In main():
  • 我使用import { ElectronService } from "ngx-electron"发送数据,并使用ipcRenderer.send('aaa', data)从MAIN进程获取响应
  • 在MAIN进程(main.js)中,

    ipcRenderer.on('bbb', () => {})


问题:

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

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

1 个答案:

答案 0 :(得分:0)

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

您需要 Node run a python script

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

还有更多answers here

虽然电子应用程序基本上可以在任何操作系统上运行,但尚不清楚其他用户是否将安装python(Mac OS附带了Windows,而Windows没有)。因此它可以在您的计算机上运行,​​但不能在其他人的计算机上运行。