使用 JavaScript 触发 Python 脚本

Trigger A Python Script By Using JavaScript

提问人:donnynja 提问时间:5/15/2022 最后编辑:martineaudonnynja 更新时间:5/16/2022 访问量:808

问:

我正在做一个小项目,我已经用 python 准备了后端,并使用 HTML、CSS 和 JS 准备了图形用户界面。

python 脚本不需要任何外部库,它唯一要做的就是打开一个处理了数据的 JSON 文件,因为它是一个游戏,结果是随便生成的,因此我不必将任何参数传递给脚本。 问题是我不知道如何触发脚本,因此它生成了我可以通过 JabaScript 访问的 json。

该项目的方案是这样的: index.html

Pages(文件夹)

  • newGame.html
  • loadGame.html
  • rules.html

python(文件夹)

  • python_script1.py
  • python_script2.py
  • python_script3.py
  • main.py

具体来说,我必须在用户加载 newGame 页面或 loadGame 页面后触发脚本。

(显然 js 不是node.js是实际的客户端 JavaScript)

我做了一些研究,我发现 pyodyde 开源项目可以满足我的需求,事实是我无法弄清楚如何使用此资源将接口文件与后端文件连接起来。

JavaScript Python 浏览器 客户端

评论

0赞 5/15/2022
我建议为此使用 flask,即编写一个实际的后端/Web 服务器。这样,您就可以随时使用 fetch() 从服务器请求任意数据。

答:

0赞 user18180682 5/15/2022 #1

有一个名为 PyScript 的新库(它可以帮助您在 HTML 中运行 python),安装 cli 所需要做的就是执行以下命令:(此命令将安装 cli 而不是库)。 那么你应该执行这个命令:(注意:这会将python文件转换为html文件,因此python文件名将是html文件的名称) 它应该这样做。 HTML 代码如下:pip install pyscript-clipyscript wrap python_file.py

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Homepage</title>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css"/>
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<py-script>
Code here
</py-script>
</body>
</html>
0赞 user19119492 5/15/2022 #2

但是,一旦我输入命令并从 python 脚本创建了 html 文件,我该如何将其连接到“newLevel”页面?

评论

1赞 Community 5/15/2022
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
1赞 donnynja 5/16/2022 #3

溶液

好的,通过其他一些研究,我找到了解决我的问题的方法。 但首先,我要感谢你们向我推荐 PyScript 库。

我遇到的问题是我需要在pyscript标签中连接一个python文件。 起初,我不得不用关键字导入它,而不是执行文件。 但是我发现py-script标签有一个属性,你可以链接所有你想要的外部文件。importsrc

所以,最后,我所要做的就是连接我的文件是这样的:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>newGame</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <py-script src= "./python scripts/test_file.py"></py-script>
  <script src="script.js"></script>
</body>
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</html>

评论

0赞 donnynja 5/16/2022
P.S. 在 html 标签关闭之前,将指向外部包(stylesheets/sciripts、ecc...)的链接放在 head 标签中还是在末尾更好?