Juan

经营:https://juanstechblog.blogspot.com/ 来自马来西亚。

iOS 14 LikeCoin账号余额Widget(二):REST API(笔记)

發布於
Python + Flask写一个简单REST API。
Image by James Osborne from Pixabay

续上篇文章把爬虫写好后,现在需要写一个REST API,让电脑上抓到的数据可以与手机交换。如果大家对API不熟悉的话,可以参考@James的自學AI區 大大写的什麼是API,能吃嗎?

这次我使用了Flask微框架来写这个REST API,Flask最大的优点就是容易写,同时也很简洁。简单几行代码,就能写好一个简单的功能。

需要的软件:

  • 安装Flask
pip install flask

解释

第一步需要把上篇文章写的爬虫,倒入现在写的REST API文件内。这里写的“webscrape”是上篇文章爬虫程序的文件名称(webscrape.py)。

from webscrape import *

先解释这段代码,“app.run”是启动这个REST API的代码。其中,“host='0.0.0.0', port=5000”这段是告诉Flask去监听这个IP地址和接口的请求。

app.run(host='0.0.0.0', port=5000)

“0.0.0.0”的意思是这台电脑被分配到的IP地址,在macOS下可以在System Preferences -> Network内查看到。Windows也可以在CMD下,输入“ipconfig”。

现在链接的IP Address。

主体的部分,"@app.route('/wallet', methods=['GET'])"就是告诉Flask当听到请求的网址是“192.168.1.11/wallet”,就执行下方的函数(function)。

@app.route('/wallet', methods=['GET'])
def getBalance():

函数内的cosmosWalletAddress = request.args.get('address')是在获取请求中的address。例如:当请求是192.168.1.11/wallet?address=123456789, cosmosWalletAddress会获得的值就是“123456789”。

获得cosmosWalletAddress的值后,把值传递到上篇写好的爬虫函数内“scrapeBalance(cosmosWalletAddress)”,让它去执行。爬虫执行好后,就会返回LikeCoin账号余额,这个时候再已json的形式返回给刚刚的请求,也就是响应(Response)回去。

def getBalance():
    cosmosWalletAddress = request.args.get('address')
    balance = scrapeBalance(cosmosWalletAddress)
    return {
        "balance" : balance
    }

完整代码如下:

from flask import Flask 
from flask import request
from webscrape import *

app = Flask(__name__)
app.config["DEBUG"] = True

@app.route('/wallet', methods=['GET'])
def getBalance():
    cosmosWalletAddress = request.args.get('address')
    balance = scrapeBalance(cosmosWalletAddress)
    return {
        "balance" : balance
    }

app.run(host='0.0.0.0', port=5000)

到这里,简单的REST API就写好了,你可以开始运行这个程序。去到浏览器上搜索栏位,输入http://192.168.1.11:5000/wallet?address=你的cosmos钱包地址。然后,稍等一下就会返回账号余额。

REST API测试结果。

完。

喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

CC BY-NC-ND 2.0 版權聲明

我终于把想做的东西做出来了。

iOS14 LikeCoin账号余额Widget(一):爬虫 (笔记)

什麼是API,能吃嗎?

5

看不過癮?

一鍵登入,即可加入全球最優質中文創作社區