{"content":{"title":"Web3.py 开发者指南","body":">- 原文链接：[medium.com/buildbear...](https://medium.com/buildbear/the-ultimate-guide-to-web3-py-for-developers-eb0825c4c7f9)\r\n>- 译者：[AI翻译官](https://learnblockchain.cn/people/19584)，校对：[翻译小组](https://learnblockchain.cn/people/412)\r\n>- 本文链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/10229)\r\n    \r\n\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993056690)\r\n\r\n对于希望与以太坊交互的 Python 开发者来说，web3.py 是首选库。本指南向你展示如何使用 web3.py 和 BuildBear RPC 来轻松测试、部署和管理 dApps，置身于逼真的测试环境中。我们还将演示如何通过 BuildBear 的 RPC，使用 Web3.py 与币安链上的 PancakeSwap 彩票智能合约进行交互。\r\n\r\n## 你将学习到什么：\r\n\r\n1.  什么是 Web3.py\r\n2.  如何使用 Web3.py\r\n3.  使用 web3.py 与 PancakeSwap 智能合约进行交互\r\n\r\n## 什么是 Web3.py？\r\n\r\nWeb3.py 是一个 Python 库，极大简化了你与以太坊网络连接的方式。它类似于 ethers.js 和 web3.js 对 JavaScript 的作用，使开发者能够与区块链进行交易。\r\n\r\n以下是一个示意图，库帮助与以太坊连接：\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993056712)\r\n\r\n_图片来源:_ [_iotbl_](https://iotbl.blogspot.com/2017/03/ethereum-and-blockchain-2.html)_._\r\n\r\n`web3.py` 让我们通过 JSON-RPC 与区块链进行通信，使你能够通过该单一连接与整个区块链进行交互。这就像使用一个单一的接入点来读取数据或向网络发送交易。借助 `web3.py`，你可以轻松检查余额，调用智能合约中的函数，或者通过与一个共享数据的单一节点进行通信来提交新交易。\r\n\r\nWeb3.py 非常适合使用 Python 构建的项目，并且具有易于使用的用户友好 API。该库还支持同步和异步编程，允许开发者为他们的项目选择最合适的方法。\r\n\r\nWeb3.py 的主要优点之一是其易于使用的 API。该库具有简单直观的界面，使开发者能够轻松与以太坊区块链进行交互。JSON RPC 的支持使得将 Web3.py 集成到现有项目中变得容易，同时还使得测试和调试你的代码变得简单。\r\n\r\n## 如何使用 Web3.py？\r\n\r\n要通过 JSON-RPC 连接到主网络/测试网络上的节点，你需要访问该区块链节点端点。这就是 BuildBear 登场的地方：\r\n\r\n1.  **它提供可靠且真实的测试环境，可以通过 RPC URL 即时访问主网状态。**\r\n2.  **不限制代币可用性（ERC20 和原生代币）**\r\n3.  **提供调试和交易追踪的探索器**\r\n4.  **通过其插件架构提供广泛的开发工具支持。**\r\n\r\n该设置简化了开发过程，使开发者能够更轻松、更快速地构建和测试应用程序。\r\n\r\n现在，让我们看看如何使用 Python 库与 BuildBear RPC URL。\r\n\r\n## 前提条件\r\n\r\n*   安装 [Python 3.x](https://www.python.org/downloads/)\r\n\r\n你可以通过在终端运行以下命令来检查你系统中安装的 Python 版本（推荐 Python 3.8+）：\r\n\r\n```\r\n$ python3 \\--version\r\n```\r\n\r\n*   通过 pip 安装 web3.py。\r\n*   BuildBear 账户\r\n\r\n要开始，请在区块链网络上创建一个 [BuildBear](https://home.buildbear.io/) 沙盒。对于本教程，选择币安链。如果你是 BuildBear 的新手，请创建一个帐户，并按照我们的快速入门 [指南](https://www.buildbear.io/resources/quick-guide) 设置沙盒。\r\n\r\n## 设置项目\r\n\r\n本项目演示如何使用 `web3.py` 与币安智能链上的 PancakeSwap 彩票合约进行交互。我们将首先了解基本的 `web3.py` 函数，以熟悉常见操作，然后连接到 PancakeSwap。\r\n\r\n```\r\nmkdir dapp && cd dapp\r\n\r\n```\r\n创建一个 Python 虚拟环境并激活它。\r\n\r\n```\r\npython3.12 -m venv myenv source myenv/bin/activate\r\n```\r\n\r\n在你的环境中安装 `web3.py`：\r\n\r\n```\r\npip install web3\r\n```\r\n\r\n## 连接到 BuildBear RPC\r\n\r\n在 VS Code 编辑器中打开项目。创建一个名为 demo.py 的文件。添加以下代码以连接到 BuildBear 的 RPC 并验证连接，检索块编号并检查你的钱包余额。将你的钱包地址替换为检查余额。使用 [水龙头](https://faucet.buildbear.io/) 获取测试代币进行资助。\r\n\r\n```python\r\nfrom web3 import Web3\r\n\r\nbuildbear_url = \"https://rpc.buildbear.io/prime-gorgon-3fe07045\"  \r\nweb3 = Web3(Web3.HTTPProvider(buildbear_url))print(web3.is_connected())  \r\nprint(web3.eth.block_number) \r\n# 填入你的账户  \r\nbalance = web3.eth.get_balance(\"0x9FE1b56E45c464616317eEA2663e691FbF79bE52\")  \r\nprint(web3.from_wei(balance, \"ether\"))\r\n\r\n```\r\n运行 Python 文件，输出应类似如下：\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993056702)\r\n\r\n## 在 PancakeSwap 上出售代币\r\n\r\n在下一部分，让我们与 PancakeSwap 路由器进行交互以出售代币。我们将连接到 PancakeSwap 路由器合约并发送交易以交换代币。\r\n\r\n使用以下代码来：\r\n\r\n*   初始化与 BuildBear RPC 的连接以访问币安链\r\n*   设置 PancakeSwap 路由器合约地址 `(0x10ED43C718714eb63d5aA57B78B54704E256024E)` 进行代币交换操作。\r\n*   使用 PancakeSwap ABI，这定义了如何与合约函数进行交互。\r\n*   定义发送者地址（持有你要出售的代币的钱包）和代币合约地址（你想出售的代币合约地址）\r\n\r\n注意：检查发送者的 BNB 原生代币余额。从水龙头获取测试代币以支付执行交易的 gas 费用。\r\n\r\n*   通过批准 `spend` 数量，允许 PancakeSwap 访问你的代币。\r\n*   通过在 PancakeSwap 路由器合约上调用 `swapExactTokensForTokens` 或 `swapExactTokensForETH` 函数来发起交换交易。\r\n\r\n指定参数，例如要出售的代币数量、你希望收到的最小代币数量以及你的钱包地址作为接收者。\r\n\r\n*   通过监控交易状态并确认一旦完成来确认交易。\r\n\r\n**注意**：将 `\"YOUR_PRIVATE_KEY\"` 替换为你的实际钱包私钥。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993056993)\r\n\r\n输出结果将如下所示：\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993057003)\r\n\r\n## 使用 PancakeSwap-lottery 库\r\n\r\n让我们使用 `pancakeswap-lottery` 库来提供对 PancakeSwap 彩票合约中的关键信息的访问。可以通过以下命令从 pip 安装；\r\n\r\npip install pancakeswap-lottery\r\n\r\n现在访问 [LotteryV2](https://github.com/frefrik/pancakeswap-lottery/blob/main/pancakeswap_lottery/lotteryv2.py)，并将提供程序替换为你的 BuildBear RPC。以下是你可以执行的一些示例：\r\n\r\n### 1\\. 获取当前彩票轮次的统计数据。\r\n\r\n从 [这里](https://frefrik.github.io/pancakeswap-lottery/guide/examples/#lottery-stats) 获取完整代码。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993057026)\r\n\r\n### 2\\. 从最近的 `X` 轮获取彩票历史数据（彩票日期、轮次、奖池）。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1733993057739)\r\n\r\n## 结论\r\n\r\n在本教程中，我们演示了如何使用 `web3.py` 连接到 BuildBear 的 RPC，检索区块链信息，并在 PancakeSwap 上执行代币交换。通过 BuildBear 中的 Web3.py 支持，你可以模拟和自动化与智能合约的交互，分析结果，并在受控环境中测试你的代码。\r\n\r\n欲了解更多信息，请查看 `web3.py` 的 [官方文档](https://web3py.readthedocs.io/en/stable/)。\r\n\r\n## 关于 BuildBear：\r\n\r\n[BuildBear](https://www.buildbear.io/) 是一个专为 DApp 开发和测试量身定制的平台。开发者可以自由地在各种区块链网络上构建个性化的私有测试网沙盒。铸造无限的原生代币和 ERC20 代币的自由，加上 BuildBear 上快速的交易时间（低于 3 秒！），极大地提升了 DApp 开发生命周期。该平台配备了用于实时测试和调试的工具和插件，确保开发者能够以无与伦比的便利跟踪复杂的区块链交易。\r\n\r\n**在以下平台与我们联系** [Twitter](https://twitter.com/_BuildBear) | [LinkedIn](https://www.linkedin.com/company/build-bear/) | [Telegram](https://t.me/Web3_dApp_Developers) | [GitHub](https://github.com/BuildBearLabs)\r\n\r\n> 我是 [AI 翻译官](https://learnblockchain.cn/people/19584)，为大家转译优秀英文文章，如有翻译不通的地方，在[这里](https://github.com/lbc-team/Pioneer/blob/master/translations/10229.md)修改，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/21836","address":null},"history":"bafkreiel7uvogxix2kiu3jsffpp77gcq2cxnstzkuv4c4tvkiefiquoj5a","timestamp":1733994102,"version":1}