如何在 Tkinter 文本框中获取新的 API 响应?


API 在应用程序中实现服务或功能方面非常有用。API 有助于建立服务器和客户端之间的连接,因此,每当客户端使用 API 方法之一向服务器发送请求时,服务器都会向客户端返回状态代码(201 表示成功响应)。

您可以使用其中一种方法(GET、POST、PUT 或 DELETE)向任何您想要的 API 发出请求。但是,如果您想创建一个需要使用公共可用 API(例如,**猫事实 API**)向服务器发出请求的应用程序,那么您可以使用 Python 库中的 **requests** 模块。

在下面的应用程序中,我们将创建一个文本框,该文本框将显示使用猫事实 API 之一从服务器检索到的响应 **(文本)**。您还需要确保您已在您的环境中安装了 **requests** 模块。要安装 **requests** 模块,您可以使用以下命令:

pip install requests

成功安装 requests 模块后,您可以按照以下步骤创建应用程序:

  • 导入所有必需的库。

  • 在应用程序中创建一个文本小部件,以显示从服务器检索到的所有响应(GET 请求)。

  • 创建一个 **var** 来存储 API URL。

  • 定义一个函数来调用 API 并通过从响应正文中提取 **“fact”** 属性来检索 JSON 响应。

  • 通过删除现有事实并插入新事实来更新 **text** 小部件中的响应。

  • 创建一个按钮(下一步和退出)以无缝加载随机猫事实。

示例

# Import the required libraries
from tkinter import *
import requests
import json

# Create an instance of tkinter frame
win = Tk()
win.geometry("700x350")
win.title("Cat Fact API ")

# Create a text box to display the response body
text = Text(win, height=10, width=50, wrap="word")
text.config(font="Arial, 12")

# Create a label widget
label = Label(win, text="Cat Facts")
label.config(font="Calibri, 14")

# Add the API URL
api_url = "https://catfact.ninja/fact"

# Define a function to retrieve the response
# and text attribute from the JSON response
def get_zen():
   response = requests.get(api_url).text
   response_info = json.loads(response)
   Fact = response_info["fact"]
   text.delete('1.0', END)
   text.insert(END, Fact)

# Create Next and Exit Button
b1 = Button(win, text="Next", command=get_zen)
b2 = Button(win, text="Exit", command=win.destroy)

label.pack()
text.pack()
b1.pack()
b2.pack()

get_zen()

win.mainloop()

输出

单击“**下一步**”按钮以获取下一个随机猫事实。您也可以单击“**退出**”按钮以退出 tkinter 应用程序窗口。

更新于:2021年12月16日

浏览量:1K+

启动您的职业生涯

完成课程获得认证

开始学习
广告