Taipy:一个基于Python的网页框架,助力数据驱动应用开发
Taipy是一个使用Python构建数据驱动型Web应用的框架。开发者仅需Python即可创建Web应用,这对于数据科学家和分析专业人士尤其便捷,并在业界日益流行。截至本文撰写之时,Taipy在GitHub上已拥有1.9k个fork和17.6k颗星。
我已参与Taipy项目贡献一段时间。起初,源于我对数据科学和分析的浓厚兴趣,并且我的技术技能与该项目契合良好。贡献过程让我获得了宝贵的实践经验,能够解决使用该框架的开发人员遇到的问题,并从经验丰富的维护人员那里学到了很多。在Hacktoberfest期间,我发现许多开发者在本地环境测试更新时遇到了困难。因此,我决定分享我的工作流程,希望能帮助其他有意贡献Taipy的开发者。
高效工作流程设置
开始为项目贡献代码时,首先应查阅CONTRIBUTING.md
文件。阅读贡献指南后,你会发现Taipy在后台使用了React,即使用户无需接触任何JavaScript代码。
我的大部分贡献都集中在React部分。要检查更新,需要构建React,将更新后的Taipy安装到Python环境中,并运行测试Taipy脚本。每次都这么做比较繁琐,所以我创建了一个bash脚本。
taipy-build.sh
#!/bin/bash # 自动化Taipy代码库的构建过程 # 构建taipy-gui cd ~/projects/taipy/frontend/taipy-gui/dom; npm i; cd ..; npm i --omit=optional; npm run build; # 构建taipy cd ~/projects/taipy/frontend/taipy; npm i; npm run build; # 安装新的taipy cd ~/projects/test-taipy; source venv/bin/activate pip install ../taipy
运行此脚本后,只需在虚拟环境中运行taipy run --use-reloader main.py
即可查看更新后的效果。
pip install ../taipy
非常重要,它用于在本地安装Taipy。请确保指向文件系统中的Taipy目录。
示例PR
让我们来看一下我在2025年提交给Taipy的第一个PR。
一位开发者发现,在单选模式下,Selector组件的高度属性无效。
首先,需要创建一个简单的Python脚本重现此bug。否则,无法检查更新是否修复了问题。在这个问题中,维护人员提供了一个脚本,所以我使用了他的脚本。
重现bug后,我开始查看Taipy的代码库。在搜索“Selector”时,我找到了需要处理此问题的文件“Selector.tsx”。我还发现,在Selector组件中,高度属性在单选模式和复选模式下未使用。我需要以某种方式传递高度属性。参考其他样式属性的处理方式,最好使用useMemo
并创建高度。
最初,我将Sx传递给父元素(FormControl),效果符合预期,但维护人员反馈最好在RadioGroup/FormGroup级别控制样式,因为标签在Taipy应用程序中仍然可见。这对我来说是一个挑战,因为这种方式的样式不起作用。
在浏览器开发者工具中调整样式时,我发现flexFlow: column wrap
是导致此行为的原因。我在heightSx
中添加了flexFlow: 'column nowrap'
。安装更新后的Taipy后,我使用测试脚本验证了此修复方案。
实现修复后,需要创建单元测试。添加新的测试用例并不难,因为我可以从现有的测试中看到很多示例。我为单选和复选模式的高度样式添加了新的测试。
这看起来很简单,但我尝试了很多次才成功。在与维护人员的反馈进行改进后,我的PR最终被批准并合并了。??
选择适合自己的问题
我知道你渴望完成令人印象深刻的工作,但是,如果你选择超出你能力范围的难题,对你和维护人员来说都是不可持续的。选择简单的问题可以让你熟悉项目,并学习新知识。我通常会在申请任务之前先研究一下问题,以确保自己能够处理。
正如藤田智(Tomo Fujita)所说:
不要担心 不要比较 不要期望太快 善待自己
如果贡献Taipy代码库对你来说太难,你也可以关注taipy-doc。文档对于库来说非常重要。
总结
为Taipy贡献代码是一段有益的旅程。无论你是修复bug、增强功能还是改进文档,每一次贡献都很重要。不要犹豫,从小事做起——你的努力可能会帮助下一个遇到同样问题的开发者!
以上是开始为流行的开源项目做出贡献的详细内容。更多信息请关注PHP中文网其他相关文章!

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具