Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách lấy phản hồi API mới trong textbox Tkinter?

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

Bạn có thể tạo yêu cầu đến bất kỳ API nào bạn muốn dùng một trong các phương thức (GET, POST, PUT, DELETE). Tuy nhiên, nếu bạn muốn tạo ứng dụng cần yêu cầu đến server dùng một API công khai (ví dụ Cat Facts API), bạn có thể dùng module requests trong thư viện Python.

Trong ứng dụng sau, chúng ta sẽ tạo textbox hiển thị phản hồi (text) lấy từ server dùng API Cat Facts. Bạn cũng cần đảm bảo đã cài module requests trong môi trường. Để cài requests, dùng lệnh:

pip install requests

Sau khi cài thành công module requests, làm theo các bước sau để tạo ứng dụng:

  • Nhập tất cả thư viện cần thiết.

  • Tạo widget text trong ứng dụng để hiển thị tất cả phản hồi lấy từ server (yêu cầu GET).

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

  • Định nghĩa hàm gọi API và lấy phản hồi JSON bằng cách trích xuất thuộc tính "fact" từ body phản hồi.

  • Cập nhật widget text với phản hồi bằng cách xóa fact cũ và chèn fact mới.

  • Tạo nút (next và exit) để tải fact mèo ngẫu nhiên liên tục.

Ví dụ

# Nhập thư viện cần thiết
from tkinter import *
import requests
import json

# Tạo instance của khung tkinter
win = Tk()
win.geometry("700x350")
win.title("Cat Fact API")

# Tạo hộp văn bản hiển thị body phản hồi
text = Text(win, height=10, width=50, wrap="word")
text.config(font="Arial, 12")

# Tạo widget nhãn
label = Label(win, text="Cat Facts")
label.config(font="Calibri, 14")

# Thêm URL API
api_url = "https://catfact.ninja/fact"

# Định nghĩa hàm lấy phản hồi và thuộc tính text từ 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)

# Tạo nút Next và Exit
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()

Kết quả

Nhấn nút "Next" để lấy fact mèo ngẫu nhiên tiếp theo. Bạn cũng có thể nhấn nút "Exit" để thoát khỏi cửa sổ ứng dụng tkinter.

Cách lấy phản hồi API mới trong textbox Tkinter?