【发布时间】:2016-12-05 21:43:38
【问题描述】:
我刚开始使用 Electron,并且对 Python 和 Django 有一些经验。这就是我想要实现的目标,
- 使用 Electron 创建一个桌面应用程序作为前端。
- 使用 python 作为后端来完成所有繁重的工作。我所说的繁重工作是指大量的文本处理。
- 使用 Django 作为桥梁,以简单网页(即 Electron)的形式显示 python 生成的结果
我知道的,
- Electron 感觉更实用、更高效,并且提供的 UI 组件不像 tkinter 等那么难看。因此选择坚持使用 Electron。
- 从过去几天的谷歌搜索来看,我知道 node.js 有一些模块来处理文本,但实际上它不如 python 高效。此外,由于我对 python 更熟悉,而且我打算玩自然语言处理,所以我想坚持使用 python。
- 使用 Django 更多的是个人喜好,因为我以前用过它,而且不用担心一件事(考虑到 Electron 有一些学习曲线)。
我拥有的知识(尽管有限),
- Rodeo 做过类似的事情,但他们没有详细说明。由此,我所知道的就是可以做到。只是四处游荡以获得“如何”的答案。
-
Another article 谈到在 Electron 中运行 Haskell 服务器。由此,我尝试通过以下实现来适应 django,但我再次收到错误连接被拒绝,这很可能是由于服务器无法运行,
function createBackendServer () { backendServer=child_process.spawn([path/to/venv/python],['manage.py','runserver'])}
有了这个,我取得了有限的成功。我已经能够运行 Django 服务器,但我无法终止服务器。为此,我使用了以下代码,
`app.on('will-quit', function() {
backendServer.kill()
})`
还有,
`app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit()
backendServer.kill()
}
})`
这些似乎都不起作用,因为我仍然可以看到一个 python 实例正在运行,并且仍然可以从 Web 浏览器访问 URL 127.0.0.1:8000。记住这一切,我有以下问题,
- 应用关闭后如何停止Django服务器?
- 目前,为了产生一个孩子,我使用的是绝对路径,这是非常错误的。如何将其转换为相对路径并使用安装在虚拟环境文件夹(windows 中的 venv/Scripts/python)中的 python 实例运行服务器?
【问题讨论】:
标签: python django server electron