构建大型Dash应用程序的项目结构
dash-app-structure
|-- .venv
| |-- *
|-- requirements.txt
|-- .env
|-- .gitignore
|-- License
|-- README.md
构建大型Dash应用程序的项目结构
|-- src
| |-- assets
| | |-- logos/
| | |-- css/
| | |-- images/
| | |-- scripts/
| | |-- favicon.ico
| |-- components
| | |-- __init__.py
| | |-- footer.py
| | |-- navbar.py
| | |-- component1.py
| |-- pages
| | |-- __init__.py
| | |-- complex_page
| | | |-- __init__.py
| | | |-- layout.py
| | | |-- page_specific_component.py
| | |-- home.py
| | |-- not_found_404.py
| |-- utils
| | |-- __init__.py
| | |-- common_functions.py
| |-- app.py
src
目录是存放所有代码的位置。我们将深入探讨下面的每个项目。src
assets
资产目录包含 css 文件、javascript 文件、本地托管的图像、站点徽标和应用程序图标。这些应根据其用途组织到文件夹中。
注意:示例存储库中不包含某些提到的目录,因为 Git 默认忽略空目录。
components
组件目录应包含整个应用程序中使用的常见组件。最简单的示例是导航栏 和页脚元素 。多合一组件也应存储在此处。最好在自己的文件中定义每个组件。此外,我将每个组件导入到文件中。这样可以更轻松地进行导入,如下所示:navbar.pyfooter.py__init__.py
from components import navbar, footer
pages
大型结构化应用程序依赖于新的达世币页面功能,目前只能通过达世币实验室获得。本指南将在达世币页面包含在达世币官方版本中后进行更新。有关更多信息,请参阅社区帖子https://community.plotly.com/t/introducing-dash-pages-a-dash-2-x-feature-preview/57775 100.
pages 目录包含应用程序的各个页面。我将页面分为两类,静态页面和复杂页面。静态页面是没有任何回调或最少回调的页面,例如您的主页、隐私政策、关于、未找到 2 或联系页面。复杂页面是包含更复杂的布局和回调的页面。
静态页面应直接包含在页面目录下。而复杂页面应包含在页面内自己的目录中。
有关如何构建更复杂的页面的更多信息,请参阅目录中的文件和页面论坛帖子。complex_page
utils
实用程序目录 用于在整个应用程序中运行的常见函数。将它们拆分为特定文件可以使代码更有条理。utils
在示例存储库中,有 2 个文件,以及 .api.pyimages.py
该文件在我们的环境变量中读取以获取 .调用的示例 API 不需要密钥;但是,我认为无论如何都包括在内很重要。此文件还定义了一个函数,用于格式化输入以调用 API。要调用 API,我们只需要导入并调用方法即可。api.pyAPI_KEYget_number_fact(int)
该文件侧重于与我们的应用程序中显示的图像有关的任何内容。一些主要功能包括读取本地图像并将其转换为编码字符串,以便它们正确显示。此外,如果要显示托管在某些内容分发网络 (CDN) 上的图像,还可以在此处定义用于格式化 URL 的方法。images.py
app.py
该文件是定义和运行应用程序的入口点。这是我们定义达世币应用程序、设置外部样式表并运行应用程序的地方。app.py
就目前而言,Dash需要定义的对象。由于这是代码库中唯一可以访问应用程序对象的地方,因此无需 ciruclar 导入,因此此文件应包含任何 .applong_callbackslong_callbacks
本文作者:Pyscm
本文链接:https://www.cnblogs.com/jin-ting/p/17614045.html
版权声明:本作品采用本文采用开源许可协议,遵循知识自由共享的原则。您可以自由地复制、修改和传播本文,但请确保在使用时注明原作者及出处,并遵循相同的开源许可协议。我们鼓励知识的共享和合作,希望能为社区贡献更多有价值的内容。许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步