利用树莓派驾驭Web服务
立即解锁
发布时间: 2025-09-18 01:33:32 阅读量: 2 订阅数: 7 AIGC 

# 利用树莓派驾驭 Web 服务
## 1. 构建滚动股票行情应用
### 1.1 项目概述
我们将使用树莓派和 Sense HAT 创建一个股票行情应用。股票行情器能实时展示股票价格,此应用会从 Alpha Vantage(提供免费股票数据 API 的在线服务)获取苹果公司(纳斯达克股票代码 AAPL)的实时股价。
### 1.2 获取 API 密钥
要使用 Alpha Vantage 的 Web 服务,需获取 API 密钥,步骤如下:
1. 访问 Alpha Vantage 网站:https://www.alphavantage.co 。
2. 点击主页上的“GET FREE API KEY”按钮,进入注册表单。
3. 填写表单,确保提供有效电子邮件地址,填写完成后再次点击“GET FREE API KEY”按钮获取密钥。
4. 将 API 密钥复制粘贴到文本编辑器,免费用户每分钟限 5 次 API 请求,每天限 500 次。
### 1.3 编写 Web 服务客户端代码
为获取苹果公司(AAPL)的当前股票信息,编写 Web 服务代码,步骤如下:
1. 在树莓派上启动 Thonny,使用之前的步骤激活 ch2 - env Python 虚拟环境。
2. 在 Thonny 中打开新标签页,输入以下代码:
```python
import requests
import json
api_key = 'xxxxxxxxxxxxxxxx'
symbol = 'AAPL'
base_url = 'https://www.alphavantage.co/query?'
function = 'GLOBAL_QUOTE'
complete_url = f'{base_url}function={function}&symbol={symbol}&apikey={api_key}'
response = requests.get(complete_url)
data = response.json()
print(json.dumps(data, indent=4))
```
3. 代码分析:
- 导入 `requests` 模块,用于发送 HTTP 请求。
- 导入 `json` 模块,处理 JSON 数据。
- `api_key` 存储 Alpha Vantage 的 API 密钥。
- `symbol` 设置为 `'AAPL'`,代表苹果股票代码。
- `base_url` 存储 Alpha Vantage API 的基础 URL。
- `function` 设置为 `'GLOBAL_QUOTE'`,用于获取全球股票报价。
- `complete_url` 组合基础 URL、函数、股票代码和 API 密钥,形成完整的 API 请求 URL。
- 使用 `requests.get()` 发送 GET 请求,将响应存储在 `response` 变量中。
- 使用 `response.json()` 解析响应为 JSON 数据,存储在 `data` 变量中。
- 使用 `json.dumps()` 格式化输出 JSON 数据。
4. 将代码保存为 `alphavantage - test.py`,点击绿色运行按钮、按 F5 或选择顶部“Run”菜单中的“Run current script”运行代码。运行后,控制台应显示类似图 2.11 的 JSON 对象。
### 1.4 增强应用
利用 Sense HAT 的点阵屏幕创建滚动股票行情器,步骤如下:
1. 在树莓派上启动 Thonny,激活 ch2 - env Python 虚拟环境。
2. 在 Thonny 新标签页中,导入必要库:
```python
import requests
from sense_hat import SenseHat
import time
```
3. 创建并设置代码中使用的变量:
```python
api_key = 'xxxxxxxxxxxxxxxx'
symbol = 'AAPL'
base_url = 'https://www.alphavantage.co/query?'
function = 'GLOBAL_QUOTE'
sense = SenseHat()
sense.set_rotation(270)
last_call_time = time.time() - 180
last_ticker_info = ""
```
4. 在变量声明下方,实现无限循环以持
0
0
复制全文
相关推荐









