gpt4 book ai didi

python - 在 Electron 中运行/停止 Django 开发服务器

转载 作者:行者123 更新时间:2023-12-03 12:21:04 25 4
gpt4 key购买 nike

我刚开始使用 Electron,并且有一些使用 Python 和 Django 的经验。这是我想要实现的目标,

  1. 使用 Electron 创建桌面应用程序作为前端。
  2. 使用 Python 作为后端来完成所有繁重的工作。我所说的繁重工作是指大量的文本处理。
  3. 使用 Django 作为桥梁,以简单网页(即 Electron)的形式显示 python 生成的结果

我所知道的,

  1. 与 tkinter 等相比,Electron 感觉更易用、更高效,并且提供的 UI 组件没有那么难看。因此选择坚持使用 Electron。
  2. 根据过去几天的谷歌搜索,我知道 node.js 有一些模块来处理文本,但实际上它不如 python 高效。此外,由于我更习惯使用 Python,而且我打算玩自然语言处理,所以我想坚持使用 Python。
  3. 使用 Django 更像是一种个人偏好,因为我以前使用过它,所以不用担心(考虑到 Electron 有一定的学习曲线)。

我的知识(尽管有限)

  1. Rodeo已经做了类似的事情,但他们没有详细说明。由此,我只知道这是可以做到的。只是四处游荡以获得“如何”的答案。
  2. 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 实例正在运行并且 url 127.0.0.1:8000 仍然可以从网络浏览器访问。牢记所有这些,我有以下问题,

  1. 如何在应用程序关闭后停止 Django 服务器?
  2. 目前,为了产生一个 child ,我使用的是绝对错误的绝对路径。如何将其转换为相对路径并使用安装在虚拟环境文件夹(Windows 中的 venv/Scripts/python)中的 python 实例运行服务器?

最佳答案

在我的代码中添加 SIGNIT 效果很好

mainWindow.on('closed', function() {
mainWindow = null;
py_process.kill('SIGINT');
});

关于python - 在 Electron 中运行/停止 Django 开发服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com