Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để nhận được phản hồi API mới trong hộp văn bản Tkinter?

API cực kỳ hữu ích trong việc triển khai một dịch vụ hoặc tính năng trong một ứng dụng. API giúp thiết lập kết nối giữa máy chủ và máy khách, vì vậy bất cứ khi nào máy khách gửi yêu cầu bằng một trong các phương thức API tới máy chủ, máy chủ sẽ phản hồi bằng mã trạng thái (201 là phản hồi thành công) cho máy khách.

Bạn có thể yêu cầu bất kỳ API nào bạn muốn bằng một trong các phương pháp (GET, POST, PUT hoặc DELETE). Tuy nhiên, nếu bạn muốn tạo một ứng dụng mà bạn cần yêu cầu đến máy chủ bằng cách sử dụng một trong các API có sẵn công khai (ví dụ: Cat Facts API ), sau đó bạn có thể sử dụng yêu cầu mô-đun trong thư viện Python.

Trong ứng dụng sau, chúng tôi sẽ tạo một hộp văn bản sẽ hiển thị phản hồi (văn bản) được truy xuất từ ​​máy chủ bằng cách sử dụng một trong các API Cat Facts. Bạn cũng cần đảm bảo rằng bạn đã cài đặt các yêu cầu mô-đun trong môi trường của bạn. Để cài đặt yêu cầu , bạn có thể sử dụng lệnh sau,

pip install requests

Khi mô-đun yêu cầu đã được cài đặt thành công, bạn có thể làm theo các bước được cung cấp bên dưới để tạo ứng dụng -

  • Nhập tất cả các thư viện được yêu cầu.

  • Tạo một widget văn bản trong ứng dụng để hiển thị tất cả các phản hồi được truy xuất từ ​​máy chủ (yêu cầu GET).

  • Tạo var để lưu trữ URL API.

  • Xác định một hàm để gọi API và truy xuất phản hồi JSON bằng cách trích xuất "fact" thuộc tính từ nội dung phản hồi.

  • Cập nhật văn bản tiện ích con với phản hồi bằng cách xóa thông tin hiện có và chèn thông tin mới.

  • Tạo một nút (tiếp theo và thoát) để tải dữ kiện Mèo ngẫu nhiên một cách liền mạch.

Ví dụ

# 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()

Đầu ra

Nhấp vào nút " Tiếp theo "để tìm nạp các dữ kiện ngẫu nhiên tiếp theo về Mèo. Bạn cũng có thể nhấp vào nút" Thoát "để thoát khỏi cửa sổ ứng dụng tkinter.

Làm cách nào để nhận được phản hồi API mới trong hộp văn bản Tkinter?