Python Dash模块

Python Dash模块

我们都肯定听过很多次Python是一种动态类型的编程语言,但并不是所有人都知道我们也可以用Python进行web开发。是的,没错,我们可以用Python进行web开发,并且Python中有许多模块可以帮助我们完成这个任务。在本教程中,我们将讨论一个这样的Python模块,即Dash模块,它可以帮助我们使用Python执行web开发任务。我们首先来看一下Dash模块的介绍,然后我们将使用Python Dash模块构建一个基本的仪表盘和web应用程序。

Python Dash模块介绍

Dash是一个用于创建许多分析型web应用程序的Python模块或框架,我们可以使用Dash框架构建分析型仪表盘。使用Dash模块,我们可以轻松创建非常快速和响应灵敏的web仪表盘,这些仪表盘的外观也非常好(拥有出色的用户界面)。当我们使用Dash模块时,我们可以在没有任何先前了解一些强制性复杂的前端Web框架,如JavaScript、HTML、CSS等的情况下构建这些交互式web仪表盘。

现在,我们已经了解了Dash模块是什么并已经完成了介绍部分,现在是时候使用Dash模块构建我们的第一个仪表盘了。但是,在使用Dash框架构建web应用程序或仪表盘之前,我们需要在系统中安装dash模块(因为它不是Python的内置模块)。安装完这个模块后,我们将进入Dash模块的应用程序部分。

安装Dash模块

在本节中,我们将学习如何在系统中安装Dash模块,以便我们可以将它导入Python程序并使用它作为Web框架。我们需要按照以下步骤在系统中安装Dash模块:

步骤1: 打开设备的命令提示终端,并定位到Python安装的目录(使用mkdir命令)。

步骤2: 现在,在终端中输入以下命令使用pip安装程序来安装Dash模块:

pip install dash

Python Dash模块

步骤3: 当我们按下回车键时,pip安装程序将开始在我们定义的路径下安装Dash模块。

Python Dash模块

正如我们所看到的,Dash模块已成功安装在我们的系统中,现在我们可以通过将其导入到程序中来开始使用它。

Dash模块的应用

我们将通过构建一个基本的仪表板来了解Dash模块的应用,在此之后,我们还将使用回调构建一个Web应用程序,以便在其中使用分析功能。通过这两个基本实现的帮助,我们将学习如何使用Dash框架构建非常快速且具有很好用户界面的Web应用程序。

在本部分中,我们将使用Dash模块创建以下两个简单的Web应用程序:

  1. 一个基本的仪表板
  2. 具有回调功能的Web应用程序

创建基本仪表板

在本节中,我们将使用Dash模块库及其函数在Python模块内创建一个简单的Web仪表板。我们在本节中创建的仪表板将是简单静态但响应式的Web仪表板。在仪表板中,我们将使用Dash模块在网页上构建一个静态且响应式的图形。

我们将按照以下给定的步骤来使用Dash模块构建一个简单的仪表板:

步骤1:导入所有所需的库:

首先,我们需要在Python程序中导入所有所需的库,以便我们可以使用所有构建仪表板所需的函数。我们首先导入以下Dash库组件:

  • Dash库
  • Dash核心组件
  • Dash HTML组件

    我们可以使用以下代码将所有上述所需的库导入Python程序中:

# Importing dash library as dsh
import dash as dsh
# Importing dash core components as dc2
import dash_core_components as dc2
# Importing html components from the dash 
import dash_html_components as dhc

Dash核心组件为我们提供了以下的核心组件:

  • 输入框
  • 图形
  • 按钮等

而Dash HTML组件有以下的HTML函数组件:

  • 段落标签
  • body标签
  • 元标签等

步骤2:设计布局:

在这一步中,我们将使用Dash的HTML组件、核心组件和库函数为我们正在构建的Web应用程序设计一个布局。在创建布局之后,我们将制作一个图形,我们创建的图形将具有各种参数。以下是我们在使用Dash HTML组件创建图形时将使用的这些参数:

  • figure(将是图形本身)
  • id(通过这个,我们将为特定的图形分配一个唯一的ID)
  • layout(它包括图形的基本布局、X轴和Y轴的数据、图形的标题等)

现在,看看下面这段代码的部分,我们在Web应用程序中创建了一个布局和一个图形:

# Initializing a variable for web application
webApp = dsh.Dash()
# Creating layout for the dashboard
webApp.layout = dhc.Div(children =[ 
    dhc.H1("Tutorial on building a web application using Dash"), # Title of the page
    dc2.Graph( 
        id ="graphExample", # ID of graph
        figure ={ # Creating Graph figure
            'data':[ 
                       {'x':[1, 3, 5, 7, 9, 11, 13], 
                        'y':[7, 6, 8, 4, 5, 9, 3], 
                        'type':'line',  
                        'name':'Trucks'}, 
                       {'x':[1, 3, 5, 7, 9, 11, 13],  
                        'y':[6, 5, 7, 3, 4, 8, 2],  
                        'type':'bar', 
                        'name':'Ships'} 
                   ], 
            'layout':{ # Layout of the graph
                'title':'A Basic Graph for Dashboard' # Title of the graph
            } 
        } 
    ) 
])

在上面的程序中,我们有类似HTML的组件,比如dhc.h1或dhc.div实际上就像HTML中的组件一样,dhc.h1就像HTML中的标题,dhc.div就像HTML中的div类。我们还可以从上述程序的给定部分中解释以下几点:

  • 我们可以很容易地理解,figure参数本质上是一个字典,其中我们可以定义名称、类型、x、y等元素。
  • 上面的代码中使用的name参数是指与图表轴相关联的名称。
  • 我们使用的type参数是指我们想要在仪表板中显示的图表类型,可以是线条、条形图等。
  • x和y可以是单个值或值列表(x和y内部的值分别指的是X轴和Y轴)。

步骤3:创建服务器:

在我们为应用程序创建布局后,仪表板已经完全准备好,但我们需要一个服务器来运行它。因此,我们现在将使用程序中的以下部分设置一个服务器,并在创建的服务器上运行仪表板:

# Creating a server for the dashboard to run on it
if __name__ == '__main__': 
    webApp.run_server()  

当我们运行程序时,它会在输出中显示默认的端口链接,我们需要打开默认浏览器,并在其中运行链接,以查看我们构建的网络应用程序。

输出:

Python Dash模块

我们可以看到我们创建了一个网络应用程序,一个基本的静态网络应用程序。在这个网络应用程序中,用户不能控制应用程序,我们甚至无法从用户那里获取输入。这就是为什么我们要构建一个网络应用程序,使用回调函数(在Dash中提供)从用户那里获取输入并根据输入给出结果。

使用Dash回调创建Web应用程序

在本节中,我们将使用Dash的函数和组件创建一个Web应用程序,就像我们在创建基本仪表板时使用的那样。但我们还将使用Dash中的回调函数来创建应用程序,以便我们可以在构建的仪表板中获取用户输入。在这里,我们不会像之前一样一步步构建Web应用程序。我们首先来看一下下面的程序,我们在其中使用了回调函数创建了一个Web应用程序,然后我们将了解程序中函数和回调函数的实现:

# Importing dash library as dsh
import dash as dsh
# Importing dash core components as dc2
import dash_core_components as dc2
# Importing html components from dash 
import dash_html_components as dhc
# Importing dependencies for using input & output
from dash.dependencies import Input, Output
webApp = dsh.Dash() 
# Layout for the application
webApp.layout = dhc.Div(children = [
    # Using input to take input
    dc2.Input(id = 'input'), 
    # Creating div class for output     
    dhc.Div(id ='output') 
])
# Using dash callback for input and output
@webApp.callback( 
# Returning the output
    Output(component_id = 'output', component_property = 'children'), 
 # Taking the input value 
    [Input(component_id = 'input', component_property = 'value')] 
) 
 # A default function to perform operation with input value
def update_value(input_data): 
    try:     
        return str(float(input_data) ** 3)  # Cube of Input value
    except:     
        return "Error, the input value given is not a numeric value"  # If the input value is not a number
# Creating a server for the dashboard to run on it
if __name__ == '__main__': 
    webApp.run_server() 

当我们运行上面的程序时,服务器会将我们重定向到本地主机,默认端口为8050,我们必须在系统的默认浏览器中打开它,这样才能看到Web应用程序。

输出:

Python Dash模块

当我们运行服务器并在默认端口下的Web浏览器中打开Web应用仪表板时,应用程序会要求输入值。当我们在框内输入一个值时,应用程序将计算给定数字的立方并将操作结果作为输出值返回(我们可以在输出图像中看到这一点)。

解释:

在上面的示例中,我们使用了与第一个示例中相似的逻辑,但我们也使用了许多不同的函数和逻辑。首先,我们在此函数中导入了一个额外的库,即dash依赖项,以使用Web应用程序中的输入和输出功能。在创建布局时,我们在这里创建了一个对话框,其中定义了输入和输出分区类。之后,我们使用dash回调,以便可以从用户处接收输入并对其进行操作以产生输出,其中输出将是操作的结果。我们使用异常处理,以便如果输入值不是一个数字,我们可以引发错误。最后,我们创建了一个服务器并在其上运行应用程序。

总结

本教程中有两个Web应用程序,一个是带有静态图表,另一个使用来自dash的回调。也许这些Web应用程序对我们来说无用,但是借助这些Web应用程序的实现,我们现在可以了解Dash库的功能以及如何使用Dash模块构建Web应用程序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程