如何在Python中使用SolanaAPI为了实现SolanaPythonAPI端点,我们需要在“python-backend”文件夹中创建一个新的“index.py”文件。在该脚本的顶部,我们导入上面安装的软件包:fromflaskimportFlask,reque
<!--StartFragment-->
为了实现 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 端点:
<!--EndFragment--> <!--StartFragment-->
在我们的“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 端点的代码片段。
<!--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-->
@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-->
@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-->
@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-->
@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-backend”文件夹中,我们使用终端通过以下命令运行“index.py”脚本:
<!--EndFragment-->
Python3 index.py
<!--StartFragment-->
这将在端口 9000 上启动我们的后端。接下来,我们需要启动我们的前端。我们使用 Visual Studio Code (VSC) 中的“Live Server”扩展执行此操作,方法是右键单击文件树中的“index.html”脚本:
然后,我们通过输入所需值、选择网络类型并点击触发按钮来使用前端 dapp。以下是两个示例:
当然,其他四个功能的工作方式相同。
<!--EndFragment-->
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!