概述
今天文章的核心是我们的 Solana Python API 教程。按照我们的步骤,您将学习完成初始设置并实现所有当前的 Moralis Solana API。通过克隆我们现有的前端 dapp,您还将能够测试后端功能。由于我们已经有一个覆盖相同六个端点的 NodeJS 后端 dapp,本教程还演示了如何轻松地从 NodeJS 过渡到 Python。因此,如果您想学习如何在 Python 中使用 Solana API,请撸起袖子并按照我们的步骤进行操作。
本教程下面的部分包括今天主题的理论方面。在这里,您可以了解什么是 Solana 和 Python,并了解有关 Moralis 的 Solana Python API 的更多详细信息,以及 Moralis 如何进一步提升您在 Solana 和其他流行的可编程链上的 Web3 开发游戏。毕竟,通过完成今天的教程您将实现的端点只是Moralis提供的一小部分。
Solana Python API 教程
如上所述,我们将使用我们在Solana JavaScript 开发中创建的前端。这意味着我们将简单地用 Python 替换我们的 NodeJS 后端,而不会影响前端。
因此,这是我们的简单前端,可让您利用 Solana API 端点的强大功能。当然,实际功能取决于我们将在此重点关注的后端。这是我们的前端 dapp 的屏幕截图:
注意:如果您有兴趣探索前端 dapp 背后的代码,请使用顶部的视频,从 1:05 开始。此外,您还可以在 GitHub 上访问完整的前端脚本 - “ index.html ”。事实上,为了测试您即将使用 Python 构建的后端,我们鼓励您克隆我们的前端。
在我们向您展示如何使用 Solana Python API 之前,您必须完成必要的设置。也就是说,以下部分专门关注今天的示例项目;如果您更喜欢使用更通用的“ Python 和 Web3 ”设置说明,请务必使用我们的Web3 Python 文档页面。
Python 后端设置
您的“Solana API demo”项目中应该已经有一个“frontend”文件夹,其中包含上述“index.html”脚本。如果您决定克隆我们的 NodeJS 后端,您可能也会在那里有一个“backend”文件夹。这就是我们开始的内容:
我们的第一步是创建一个“python-backend”文件夹。我们在终端中输入以下命令来执行此操作:
然后,我们“ cd ”进入这个新文件夹:
接下来,我们创建一个新的虚拟环境来安装和使用 Python 模块。我们使用以下命令执行此操作:
在我们使用虚拟环境之前,我们还需要激活它:
为此,我们运行以下命令:
然后,我们还需要安装 Flask、Flask CORS、Moralis 和 Python“dotenv”模块:
安装上述模块后,我们的虚拟环境即可使用。因此,我们可以继续设置环境变量。我们将在这里存储 Moralis Web3 API 密钥,这是访问 Moralis 的 Solana Python API 功能的关键。因此,如果您尚未创建 Moralis 帐户,请务必立即创建。然后,您只需单击两次即可从管理区域复制 Web3 API 密钥:
如果您在同一个项目中有 NodeJS 后端文件,则只需从那里复制“.env”文件并将其粘贴到“python-backend”文件夹中即可。否则,创建一个新的“.env”文件。在该文件中,您需要有“ MORALIS_API_KEY ”变量,该变量将上面获得的 API 密钥作为值保存。
现在我们已经准备好虚拟环境,我们可以专注于实现 Solana Python API 端点。
如何在 Python 中使用 Solana API
为了实现 Solana Python API 端点,我们需要在“python-backend”文件夹中创建一个新的“index.py”文件。在该脚本的顶部,我们导入上面安装的软件包:
接下来,我们需要确保该脚本从“.env”文件获取我们的 Web3 API 密钥:
我们在以下行中使用 Flask定义一个变量“ app ”,并且我们还在该变量中包含“CORS”:
我们希望后端 dapp 在端口 9000 上运行(与我们的 NodeJS 后端相同)。这样,我们就不需要修改前端的 URL。因此,我们在脚本底部添加了以下代码片段:
有了上述代码行,我们就可以开始实现 Moralis 的Solana API端点:
余额 API 端点:
通过钱包获取本机余额
通过钱包获取代币余额
通过钱包获取投资组合
令牌 API 端点:
获取代币价格
NFT API 端点:
通过钱包获取 NFT
获取 NFT 元数据
您无需从头开始,而是始终可以从 Moralis 文档中的 API 参考页面复制每个端点的代码片段。以下是示例:
实现 Solana Python API 端点
在我们的“index.py”脚本中,就在“ CORS(app) ”行下方,我们需要为每个端点定义路由和函数。从“通过钱包获取本机余额”端点开始,简介中的代码行就可以完成这个任务。
使用“ @app.post(“/getWalletbalance”) ”,我们在 Python 中创建一个新路由。然后,我们使用“ def getWalletbalance(): ”来定义此端点的函数。在函数内部,我们使用“ body = request.json ”读取 JSON 数据。接下来,我们定义端点的参数(所有 Moralis Solana API 端点只需要“ address ”和“ network ”参数)。然后,我们在参数和 Web3 API 密钥上使用“ sol_api.account.balance ”方法,并将其数据存储在“ result ”变量下。最后,我们通过返回“ result ”变量来返回结果。同样,以下是“ getWalletbalance ”端点的代码行:
其他端点遵循完全相同的原则;我们只需要相应地更改路由、函数名称和方法。以下是其余五个 Solana Python API 端点的代码片段。
“ getTokenbalance ”端点的代码行:
“ getNfts ”端点的代码行:
“ getPortfolio ”端点的代码行:
“ getNFTMetadata ”端点的代码行:
“ getTokenPrice ”端点的代码行:
注意:您可以在我们的 GitHub 存储库中访问完整的“ index.py ”脚本。
测试我们的 Python 后端
在“python-backend”文件夹中,我们使用终端通过以下命令运行“index.py”脚本:
这将在端口 9000 上启动我们的后端。接下来,我们需要启动我们的前端。我们使用 Visual Studio Code (VSC) 中的“Live Server”扩展执行此操作,方法是右键单击文件树中的“index.html”脚本:
然后,我们通过输入所需值、选择网络类型并点击触发按钮来使用前端 dapp。以下是两个示例:
“通过钱包获取原生余额”功能:
“通过钱包获取代币余额”功能:
当然,其他四个功能的工作方式相同。
探索 Solana、Python 和领先的 Web3 API 提供商
以下部分适用于刚接触 Solana 或 Python 编程的人。这些部分简单地解释了什么是 Solana 和 Python,一旦你了解了基础知识,你就可以进一步探索 Moralis 如何帮助你进行Solana 编程。
Solana 是什么?
Solana 是一个支持智能合约的公共开源可编程区块链。后者在 Solana 上被称为“程序”。通过这些链上程序,Solana 还支持创建同质化和不可同质化代币 (NFT) 以及各种 dapp(去中心化应用程序)。如果您熟悉以太坊或任何其他可编程链,您可能知道它们通常维护原生代币。Solana 也不例外,其原生代币为“SOL”。SOL 资产主要通过 Solana 的混合 DeFi 质押共识提供网络安全。SOL 也是用于支付 Solana 交易费用的货币,可以作为在 Solana 链上转移价值的手段。
Anatoly Yakovenko 和 Raj Gokal 是 2017 年推出 Solana 的两位主要开发人员。Yakovenko 和 Gokal 都仍然积极参与 Solana Labs 的工作 - 这是一家致力于构建产品、工具和参考实现以进一步扩展 Solana 生态系统的技术公司。
什么是 Python?
Python 是一种流行的面向对象高级编程语言,受到众多开发人员的推崇。毕竟,它有着相当悠久的历史——自 1991 年问世以来就一直存在。此外,Python 与其他编程语言(如 Ruby、Scheme、Perl 和 Java)有很多相似之处。Python 是由开发人员 Guido van Rossum 设计的,他力求使其尽可能简单易懂。了解和使用 Python 的人都说它相当容易上手、易于学习和易于使用。此外,根据“ python.org ”的说法,这种编程语言可以让您快速工作并更有效地集成系统。
与仍然是最流行的编程语言的 JavaScript 相比,Python 的用户较少。但是,它是顶级编程语言之一,并且也正在进入 Web3 开发领域。除了 Solana dapps 之外,您还可以使用Python 进行以太坊开发和所有其他与 EVM 兼容的链。
Moralis 的 Solana Python API
如果您参加了今天的教程,您就有机会了解当前的 Moralis Solana API 端点。您甚至有机会使用 Solana Python API 来实现它们——该工具使您能够使用 Python 在 Solana 上开发 dapp。因此,您现在知道如何获取 NFT 元数据、钱包投资组合、代币余额、SPL 代币价格等。因此,您可以使用这个神奇的工具来创建杀手级 dapp。例如,您可以构建 NFT 市场、代币价格信息、投资组合应用程序,甚至 Web3 游戏。Moralis 还支持 Solana 主网和 Solana 开发网。后者使您能够在上线之前测试您的 dapp。
在创建去中心化应用程序时,还有另一个很棒的工具可以使用——Moralis 的Web3 Auth API。后者使您能够在 Solana 和许多其他区块链上实现 Web3 注册和登录。因此,除了 Solana Python API 之外,Moralis 还允许您使用 Python 在所有领先的区块链上创建 dapp。当您专注于以太坊和 EVM 兼容链时,您还可以使用 Moralis Streams API监听智能合约和实时钱包事件。这进一步扩展了您可以使用 dapp 覆盖的功能范围。