如何在 Python 中使用 Solana API

  • 想样
  • 发布于 2025-03-11 15:05
  • 阅读 336

如何在Python中使用SolanaAPI为了实现SolanaPythonAPI端点,我们需要在“python-backend”文件夹中创建一个新的“index.py”文件。在该脚本的顶部,我们导入上面安装的软件包:fromflaskimportFlask,reque

<!--StartFragment-->

如何在 Python 中使用 Solana API

为了实现 Solana Python API 端点,我们需要在“python-backend”文件夹中创建一个新的“index.py”文件。在该脚本的顶部,我们导入上面安装的软件包:

<!--EndFragment-->

from flask import Flask, request
from flask_cors import CORS
from moralis import sol_api
from dotenv import dotenv_values

<!--StartFragment--> 接下来,我们需要确保该脚本从“.env”文件获取我们的 Web3 API 密钥: <!--EndFragment-->

config = dotenv_values(".env")
moralis_api_key = config.get("MORALIS_API_KEY")

<!--StartFragment--> 我们在以下行中使用 Flask定义一个变量“ app ”,并且我们还在该变量中包含“CORS”: <!--EndFragment-->

app = Flask(__name__)
CORS(app)

<!--StartFragment-->

我们希望后端 dapp 在端口 9000 上运行(与我们的 NodeJS 后端相同)。这样,我们就不需要修改前端的 URL。因此,我们在脚本底部添加了以下代码片段: <!--EndFragment-->

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=9000)

<!--StartFragment-->

  • 余额 API 端点

    • 通过钱包获取本机余额
    • 通过钱包获取代币余额
    • 通过钱包获取投资组合
  • 令牌 API 端点

    • 获取代币价格
  • NFT API 端点

    • 通过钱包获取 NFT
    • 获取 NFT 元数据

<!--EndFragment--> <!--StartFragment-->

实现 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* ”端点的代码行:

<!--EndFragment-->

@app.post("/getWalletbalance")
def getWalletbalance():
        body = request.json

        params = {
            "address": body["address"],
            "network": body["network"]
            }
        result = sol_api.account.balance(
            api_key= moralis_api_key,
            params = params
        )
        return result

<!--StartFragment-->

其他端点遵循完全相同的原则;我们只需要相应地更改路由、函数名称和方法。以下是其余五个 Solana Python API 端点的代码片段。

  • “ getTokenbalance ”端点的代码行:

<!--EndFragment-->

@app.post("/getTokenbalance")
def getTokenbalance():
        body = request.json

        params = {
            "address": body["address"],
            "network": body["network"]
            }
        result = sol_api.account.get_spl(
            api_key= moralis_api_key,
            params = params
        )
        return result

<!--StartFragment-->

  • “ getNfts ”端点的代码行:   <!--EndFragment-->
@app.post("/getNfts")
def getNfts():
        body = request.json

        params = {
            "address": body["address"],
            "network": body["network"]
            }
        result = sol_api.account.get_nfts(
            api_key= moralis_api_key,
            params = params
        )
        return result

<!--StartFragment-->

  • “ getPortfolio ”端点的代码行: <!--EndFragment-->
@app.post("/getPortfolio")
def getPortfolio():
        body = request.json

        params = {
            "address": body["address"],
            "network": body["network"]
            }
        result = sol_api.account.get_portfolio(
            api_key= moralis_api_key,
            params = params
        )
        return result

<!--StartFragment-->

  • “ getNFTMetadata ”端点的代码行: <!--EndFragment-->
@app.post("/getNFTMetadata")
def getNFTMetadata(): 
        body = request.json

        params = {
            "address": body["address"],
            "network": body["network"]
            }
        result = sol_api.nft.get_nft_metadata(
            api_key= moralis_api_key,
            params = params
        )
        return result

<!--StartFragment-->

  • “ getTokenPrice ”端点的代码行: <!--EndFragment-->
@app.post("/getTokenPrice")
def getTokenPrice():
        body = request.json

        params = {
            "address": body["address"],
            "network": body["network"]
            }
        result = sol_api.token.get_token_price(
            api_key= moralis_api_key,
            params = params
        )
        return result

<!--StartFragment-->

测试我们的 Python 后端

在“python-backend”文件夹中,我们使用终端通过以下命令运行“index.py”脚本:

<!--EndFragment-->

Python3 index.py

<!--StartFragment-->

这将在端口 9000 上启动我们的后端。接下来,我们需要启动我们的前端。我们使用 Visual Studio Code (VSC) 中的“Live Server”扩展执行此操作,方法是右键单击文件树中的“index.html”脚本:

然后,我们通过输入所需值、选择网络类型并点击触发按钮来使用前端 dapp。以下是两个示例:

  • “通过钱包获取原生余额”功能:

  • “通过钱包获取代币余额”功能:

当然,其他四个功能的工作方式相同。 

<!--EndFragment-->

  • 原创
  • 学分: 11
  • 分类: Solana
  • 标签:
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
想样
想样
江湖只有他的大名,没有他的介绍。