Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะรับการตอบสนอง API ใหม่ในกล่องข้อความ Tkinter ได้อย่างไร


API มีประโยชน์อย่างยิ่งในการใช้บริการหรือคุณลักษณะในแอปพลิเคชัน API ช่วยสร้างการเชื่อมต่อระหว่างเซิร์ฟเวอร์และไคลเอนต์ ดังนั้นเมื่อใดก็ตามที่ไคลเอนต์ส่งคำขอโดยใช้หนึ่งในวิธี API ไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะตอบกลับด้วยรหัสสถานะ (201 เป็นการตอบกลับที่สำเร็จ) ไปยังไคลเอนต์

คุณสามารถส่งคำขอไปยัง API ใดก็ได้ที่คุณต้องการโดยใช้วิธีใดวิธีหนึ่ง (GET, POST, PUT หรือ DELETE) อย่างไรก็ตาม หากคุณต้องการสร้างแอปพลิเคชันที่คุณต้องการร้องขอไปยังเซิร์ฟเวอร์โดยใช้หนึ่งใน API ที่เปิดเผยต่อสาธารณะ (เช่น Cat Facts API ) จากนั้นคุณสามารถใช้ คำขอ โมดูลในไลบรารี Python

ในแอปพลิเคชันต่อไปนี้ เราจะสร้างกล่องข้อความซึ่งจะแสดงการตอบกลับ (ข้อความ) ดึงมาจากเซิร์ฟเวอร์โดยใช้หนึ่งใน Cat Facts API คุณจะต้องตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งคำขอ .แล้ว โมดูลในสภาพแวดล้อมของคุณ ในการติดตั้งคำขอ โมดูล คุณสามารถใช้คำสั่งต่อไปนี้

pip install requests

เมื่อติดตั้งโมดูลคำขอสำเร็จแล้ว คุณสามารถทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน -

  • นำเข้าไลบรารีที่จำเป็นทั้งหมด

  • สร้างวิดเจ็ตข้อความในแอปพลิเคชันเพื่อแสดงการตอบกลับทั้งหมดที่ดึงมาจากเซิร์ฟเวอร์ (คำขอ GET)

  • สร้าง var เพื่อจัดเก็บ URL ของ API

  • กำหนดฟังก์ชันเพื่อเรียก API และดึงการตอบสนอง JSON โดยแยก "ข้อเท็จจริง" จากเนื้อหาการตอบสนอง

  • อัปเดต ข้อความ วิดเจ็ตที่มีการตอบกลับโดยลบข้อเท็จจริงที่มีอยู่และแทรกข้อเท็จจริงใหม่

  • สร้างปุ่ม (ถัดไปและออก) เพื่อโหลดข้อมูล Cat แบบสุ่มได้อย่างลงตัว

ตัวอย่าง

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

ผลลัพธ์

คลิกปุ่ม "ถัดไป " เพื่อดึงข้อมูล Cat แบบสุ่มถัดไป คุณยังสามารถคลิกปุ่ม "ออก ปุ่ม " เพื่อออกจากหน้าต่างแอปพลิเคชัน tkinter

จะรับการตอบสนอง API ใหม่ในกล่องข้อความ Tkinter ได้อย่างไร