如何使用PYSCRIPT创建PYTHON WEB应用程序

在考虑 Web 开发时,你很可能会自动想到JavaScript. 这有充分的理由,因为 JS 是市场上最流行的语言之一。JavaScript 如此流行的原因之一是它可以在 Web 浏览器中本机运行,因此无需额外的运行时。

译自How To Use Pyscript To Create Python Web Apps,作者 Jack Wallen。

但随后出现了WebAssembly, 这是一种类似于低级汇编的语言,它使用紧凑的二进制格式和接近本机的性能,允许 C、C++,RustPython等语言在 Web 上运行。

然而,这并不意味着你可以简单地编写传统的 Python 代码并在 Web 浏览器中运行它。要实现这一点,你必须使用 PyScript。借助PyScript, 你可以使用 Python 为 Web 开发丰富的前端,甚至可以使用各种 Python 模块,例如NumPy.

PyScript 提供了一个简单而干净的 API、可插入且可扩展的组件以及对 HTML 的扩展支持。虽然 PyScript 并非旨在取代 JavaScript,但它是你开发人员工具包的绝佳补充。

我想通过演示如何创建一个在 Web 浏览器中运行的简单 Hello, World! 应用程序,向你展示 PyScript 如何实现这一点。

你需要什么

我将在 Ubuntu Server 22.04 的实例上演示这一点,这样你就可以使用 Apache Web 服务器。你还需要一个文本编辑器和一个 Web 浏览器。要安装 Apache,你还需要一个具有 sudo 权限的用户。

就是这样。让我们开始吧。

安装 Apache

我们要做的第一件事是安装 Apache。为此,请登录你的 Ubuntu Server 实例,并发出以下命令:

arduino 复制代码
sudo apt-get install apache2 -y

当上述命令完成后,Apache 应该已启动并正在运行。你可以通过打开一个 Web 浏览器并将其指向[http://SERVER(其中](http://xn--server(-m43k97v/)SERVER 是托管服务器的 IP 地址)来验证这一点。你应该会看到 Apache 欢迎页面。

创建 HTML 文件

现在服务器已启动并正在运行,你可以创建将容纳 PyScript 代码的 HTML 文件。首先,让我们使用以下命令创建一个基本的 HTML 文件:

css 复制代码
sudo nano /var/www/html/pyscript.html

基本文件的内容如下所示:

xml 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <title>New Stack: PyScript</title>
</head>
<body>
  <body>Hello, World!</body>
</body>
</html>

保存并关闭文件。如果你将 Web 浏览器指向http://SERVER/pyscript.html,你将看到_Hello, World!_打印出来。这很好,但这只是直接的 HTML。我们如何使用 PyScript 来实现这一点?

让我们使用以下命令再次打开 pyscript.html 文件进行编辑:

css 复制代码
sudo nano/var/www/html/pyscript.html

我们要做的第一件事是将 PyScript 链接到我们的 HTML 文件。如果没有此链接,我们的 pyscript.html 文件将无法访问 PySript 接口。

为此,我们在

部分的底部添加两行。第一行链接到 pyscript.net 中的 CSS 文件,如下所示:

ini 复制代码
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />

如果你在浏览器中打开该文件(地址为pyscript.net/alpha/pyscr...),你会注意到它是一个相当长的样式表。

在下一行中,我们将添加指向 pyscript.js JavaScript 文件的链接,如下所示:

xml 复制代码
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>

我们的

部分现在如下所示:

xml 复制代码
<head>
  <meta charset="UTF-8">
  <title>New Stack: PyScript</title>
  <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
  <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>

最后,我们必须添加将在浏览器页面中打印 Hello, New Stack! 消息的代码。

如果你还记得,用于打印字符串的 Python 代码很简单:

bash 复制代码
print("Hello, New Stack!")

运行上述代码,你将看到正确的输出。

我们如何将该代码添加到 HTML 文件中,方法是使用以下行:

bash 复制代码
<body> <py-script> print("Hello, New Stack!!") </py-script> </body>

标记内,我们使用 标记来指示我们的代码。

现在,我们的整个 HTML 文件如下所示:

xml 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>New Stack: PyScript</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> print("Hello, New Stack!!") </py-script>
</body>
</html>

保存并关闭文件。在浏览器中刷新页面,您将看到运行时执行其操作,并最终在页面上打印出"你好,New Stack!"。

让我们找点乐子。我们将创建一个简单的网络应用程序,将英语翻译成海盗语。

为此,我们需要创建三个文件:

  • pirate.html -- 包含我们的 HTML 和 Pyscript 代码的主文件。
  • pyscript.json -- 向浏览器告知应用程序的某些配置。
  • main.py -- 定义应用程序的行为。

创建 pirate.html 文件并粘贴以下内容:

xml 复制代码
<!DOCTYPE html>
<html>
  <head>
      <meta charset="utf-8″ />
      <meta name="viewport" content="width=device-width,initial-scale=1″ />
      <title>Pirate Speak PyScript</title>
      <link rel="stylesheet" href="https://pyscript.net/releases/2024.1.1/core.>
      <script type="module" src="https://pyscript.net/releases/2024.1.1/core.js>
  </head>
<body>
<p>Type an English phrase and click Translate</p>
<input type="text" id="english" placeholder="Type English here..." />
<button py-click="translate_english">Translate</button>
<div id="output"></div>
<script type="py" src="./main.py" config="./pyscript.json"></script>
</body>
</html>

如您所见,我们在<head>部分链接了一个样式表和 JavaScript 核心,并在<body>部分调用了我们的 main.py 和 pyscript.json 文件。我们还添加了一个输入部分,允许用户输入要翻译的短语。

创建 pyscript.json 文件并粘贴以下内容:

css 复制代码
{
    "packages": ["arrr"]
}

此文件的作用是调用 arrr.py,它是Python arr 包

最后,创建 main.py 文件并添加以下内容:

ini 复制代码
import arrr
from pyscript import document

def translate_english(event):
    input_text = document.querySelector("#english")
    english = input_text.value
    output_div = document.querySelector("#output")
    output_div.innerText = arrr.translate(english)

前两行定义了我们正在导入的内容。下一个块定义了一个名为translate_english()的函数,该函数获取输入的文本并将其从英语翻译成 arrr 语。

这三个文件都应放在/var/www/html/目录中。对于较大的项目,您需要将它们添加到自己的目录中。

保存所有文件后,将您的网络浏览器指向http://SERVER/pirate.html。您应该看到 "输入一个英语短语,然后点击翻译"。在下面,您将找到一个文本字段和一个翻译按钮。输入一个短语并点击翻译,您将获得您输入的短语的海盗语翻译。

erlang 复制代码
Arrr matey.

这就是使用 PyScript 和 HTML 创建简单的 Python Web 应用程序的方法。

本文在云云众生yylives.cc/)首发,欢迎大家访问。

相关推荐
IT古董36 分钟前
【机器学习】如何使用Python的Scikit-learn库实现机器学习模型,并对数据进行预处理和特征缩放以提高模型性能?
python·机器学习·scikit-learn
Want5952 小时前
Python绘制太极八卦
开发语言·python
翀哥~2 小时前
python VS c++
开发语言·c++·python
财富探秘者2 小时前
贵州茅台[600519]行情数据接口
大数据·c语言·python·算法·金融·restful
刘天远3 小时前
django实现paypal订阅记录
后端·python·django
菜鸟小贤贤4 小时前
python+pytest+allure利用fix实现接口关联
python·macos·自动化·pytest
vvvae12344 小时前
Python 网络爬虫操作指南
python
hummhumm5 小时前
第33章 - Go语言 云原生开发
java·开发语言·后端·python·sql·云原生·golang
web安全工具库5 小时前
Python 列表元素的访问、出现次数统计及成员资格判断
python
湫ccc5 小时前
《Python基础》之列表推导式(列表生成式)
开发语言·python