Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter 텍스트 상자에서 새 API 응답을 얻는 방법은 무엇입니까?

<시간/>

API는 애플리케이션에서 서비스나 기능을 구현하는 데 매우 유용합니다. API는 서버와 클라이언트 간의 연결을 설정하는 데 도움이 되므로 클라이언트가 API 메서드 중 하나를 사용하여 서버에 요청을 보낼 때마다 서버는 상태 코드(성공적인 응답으로 201)로 클라이언트에 응답합니다.

메소드(GET, POST, PUT 또는 DELETE) 중 하나를 사용하여 원하는 API에 요청할 수 있습니다. 그러나 공개적으로 사용 가능한 API(예:Cat Facts API) 중 하나를 사용하여 서버에 대한 요청이 필요한 애플리케이션을 생성하려는 경우 ) 그런 다음 요청을 사용할 수 있습니다. Python 라이브러리의 모듈입니다.

다음 애플리케이션에서 응답 (텍스트)을 표시하는 텍스트 상자를 만듭니다. Cat Facts API 중 하나를 사용하여 서버에서 검색합니다. 또한 요청을 이미 설치했는지 확인해야 합니다. 당신의 환경에 있는 모듈. 요청을 설치하려면 모듈에서 다음 명령을 사용할 수 있습니다.

pip install requests

요청 모듈이 성공적으로 설치되면 아래 단계에 따라 애플리케이션을 생성할 수 있습니다 -

  • 필요한 모든 라이브러리를 가져옵니다.

  • 애플리케이션에서 텍스트 위젯을 만들어 서버에서 검색된 모든 응답(GET 요청)을 표시합니다.

  • var 생성 API URL을 저장합니다.

  • "팩트"를 추출하여 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()

출력

"다음 " 버튼을 눌러 다음 무작위 고양이 팩트를 가져옵니다. "종료를 클릭할 수도 있습니다. " 버튼을 눌러 tkinter 응용 프로그램 창을 종료합니다.

Tkinter 텍스트 상자에서 새 API 응답을 얻는 방법은 무엇입니까?