如何在 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 应用程序窗口。
广告