Python
 Computer >> コンピューター >  >> プログラミング >> Python

Tkinterテキストボックスで新しいAPI応答を取得するにはどうすればよいですか?


APIは、アプリケーションにサービスや機能を実装するのに非常に役立ちます。 APIは、サーバーとクライアント間の接続を確立するのに役立ちます。そのため、クライアントがAPIメソッドの1つを使用してサーバーにリクエストを送信するたびに、サーバーはステータスコード(成功した応答として201)でクライアントに応答します。

いずれかのメソッド(GET、POST、PUT、またはDELETE)を使用して、任意のAPIにリクエストを送信できます。ただし、公開されているAPI( Cat Facts API など)のいずれかを使用してサーバーへのリクエストが必要なアプリケーションを作成する場合 )、その後、リクエストを使用できます Pythonライブラリのモジュール。

次のアプリケーションでは、応答を表示するテキストボックスを作成します(テキスト) CatFactsAPIの1つを使用してサーバーから取得。また、リクエストがすでにインストールされていることを確認する必要があります ご使用の環境のモジュール。 リクエストをインストールするには モジュールの場合、次のコマンドを使用できます

pip install requests

リクエストモジュールが正常にインストールされたら、以下の手順に従ってアプリケーションを作成できます-

  • 必要なすべてのライブラリをインポートします。

  • アプリケーションでテキストウィジェットを作成して、サーバーから取得したすべての応答(GETリクエスト)を表示します。

  • varを作成します APIURLを保存します。

  • "fact" を抽出して、APIを呼び出し、JSON応答を取得する関数を定義します。 応答本文の属性。

  • テキストを更新します 既存のファクトを削除し、新しいファクトを挿入することで、応答を含むウィジェット。

  • ランダムな猫のファクトをシームレスに読み込むためのボタン([次へ]と[終了])を作成します。

# 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応答を取得するにはどうすればよいですか?


  1. Tkinterテキストボックスの内容を削除する方法は?

    Tkinterは、ボタン、ダイアログボックス、ウィジェットなどを備えたフル機能のアプリケーションを作成するための多くの機能とモジュールを提供します。 テキストウィジェットを作成するには、基本的にコンストラクターであり、tkinterのウィンドウまたはフレームを取得するtkinterエントリーウィジェット関数を使用できます。さらに、組み込みのメソッド delete(first、last =None)を使用して、このテキストウィジェットのコンテンツを削除できます。 これは基本的にテキストボックス内の範囲を取ります。 この例では、基本的に指定されたテキストボックスからすべてのコンテンツを削除する

  2. tkinterのエントリにプレースホルダーを追加するにはどうすればよいですか?

    Tkinterは、ボタン、テキスト、エントリ、ダイアログ、およびアプリケーションの開発に役立つその他の属性などのウィジェットを追加する機能を提供します。ただし、tkinterはエントリーウィジェットにプレースホルダーを含めません。プレースホルダーは、ユーザーに通知するためにエントリウィジェットに表示されるダミーテキストです。 この記事では、 insert(default value、text)を使用して、エントリウィジェットにプレースホルダーを追加します。 プレースホルダーテキストとともに0などのデフォルト値をとる関数。 例 #Import tkinter library from tkin