Python中的Eel

Python中的Eel

在本教程中,我们将讨论在Python编程语言中使用Eel库来使用HTML、CSS和JavaScript设计Python程序的用户界面。

我们将教程分为两个部分。第一部分基于Eel库的基本理论。与此相反,我们在另一部分中通过创建一个简单的应用程序来展示库的实现,该应用程序接受用户输入的两个整数并返回它们的和。

理解Python Eel库

Eel是一个小型库,使用Python编程语言,允许程序员基于HTML和JavaScript创建类似Electron的离线图形用户界面(GUI)应用程序,并完全访问Python的功能和库。

Eel能够托管一个本地Web服务器,然后允许程序员在Python中注释方法和函数,以便我们可以从JavaScript中调用它们,反之亦然。该库的设计目的是简化编写简单和短小的GUI应用程序的过程。

让我们考虑一个描述Eel概念的图示。

Python中的Eel

HTML、CSS和JavaScript文件存储在同一目录中,并在Python程序的帮助下进行初始化。JS文件通过HTML页面上的onclick事件激活的函数实现了HTML页面与Python之间的连接。

Eel库的实现

以下部分介绍了如何使用Eel库创建一个简单的应用程序进行演示目的。该应用程序的思路是从HTML页面接受两个数字,在Python中将它们相加,并将输出显示给用户。

但在我们开始创建应用程序之前,让我们先安装Eel库。

我们将使用pip安装程序来安装所需的库。其语法如下:

语法:

$pip install eel

下一步,我们将使用Visual Studio Code来创建这个项目。我们已经创建了一个名为”Web_test”的文件夹。在该文件夹中,我们创建了另一个名为”myWeb”的文件夹。该文件夹将存储以下文件:

  1. html
  2. js-file.js
  3. py

对于HTML页面,我们将创建三个文本区域和一个按钮。让我们考虑以下代码片段。

文件:myWebpage.html

<html>
    <head>
        <title>
            Sum Application
        </title>
        <script type = "text/javascript" src = "js-file.js"></script>
        <script type = "text/javascript" src = "/eel.js"></script>
    </head>
    <body>
        <label>Enter First Number
        <textarea id = "int1"></textarea>
        <label>Enter Second Number
        <textarea id = "int2"></textarea>
        <label>Result
        <textarea id = "res"></textarea>

        <button type = "button" id = "add" onclick = "summation()">
            Sum
        </button>

    </body>
</html>

说明:

在上面的代码片段中,我们创建了一个HTML页面,在这个页面中我们定义了三个具有不同ID的文本区域。’int1′ 和 ‘int2’ 用于获取用户的输入,而’res’文本区域用于显示结果。带有id=’sum’的按钮上有一个在JS文件中定义的onclick函数。

现在,让我们来看一下JS文件的代码片段。

文件:js-file.js

document.querySelector("button").onclick = function summation(){
    var data_1 = document.getElementById("int1").value
    var data_2 = document.getElementById("int2").value
    eel.add(data_1, data_2)(call_Back)
}

function call_Back(output){
    document.getElementById("res").value = output
}

解释:

在上面的代码片段中,我们定义了一个函数 summation() 通过onclick事件激活。在这个函数内部,我们获取了 ‘int1’‘int2’ 的值,并将它们传递给将在Python文件中定义的 ‘sum’ 函数。名为 call_Back() 的函数接受Python方法 sum 返回的 ‘output’ 作为参数。这个 ‘output’ 在具有id ‘res’ 的文本区域中返回。

现在,让我们考虑Python文件的代码片段。

文件:my_sum.py

# importing the eel library
import eel
# initializing the application
eel.init("myWeb")

# using the eel.expose command
@eel.expose
# defining the function for addition of two numbers
def add(data_1, data_2):
    int1 = int(data_1)
    int2 = int(data_2)
    output = int1 + int2
    return output

# starting the application
eel.start("myWebpage.html")

解释:

在上面的代码片段中,我们导入了 eel 库并使用 eel.init(“文件夹名称”) 命令初始化了应用程序,其中我们将文件夹名称指定为” myweb

然后,我们使用了 eel.expose 命令,在其中定义了” add “函数,该函数将 ‘data_1’‘data_2’ 相加,并将计算结果作为” output “返回。存储在”output”中的值由JS文件中的” call_Back “函数获取,并放置在HTML网页中。

然后,我们使用 eel.start(“HTML文件名”) 命令初始化应用程序,指定文件名为” myWebpage.html “。

现在让我们保存Python文件,并使用以下语法执行它,以查看结果:

语法:

$ python my_sum.py

以下图显示了设计的用户界面。

输出:

Python中的Eel

解释:

默认情况下,Python Eel库使用Google Chrome浏览器来运行应用程序;但是,我们还可以通过 ‘mode’ 选项来指定浏览器。除了 ‘mode’ 之外,还有一些其他的应用程序选择,例如 ‘position’, ‘size’, ‘geometry’ 等等,这些都是通过 eel.start() 命令传递的。

结论

在以上教程中,我们讨论了Eel库及其在Python中的使用方法。我们了解到这个库可以帮助程序员创建基于HTML和JavaScript的离线应用程序。借助Eel库,我们可以利用Python的能力,包括使用HTML和CSS来设计用户界面。尽管根据流行度,Eel位于其主要竞争对手Electron之下;然而,有很多程序员的首选是Eel,用于创建简单的图形用户界面(GUI)应用程序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程