En este artículo, veremos cómo realizar una solicitud de API y luego insertarla en un cuadro de texto de Tkinter usando Python. Antes de continuar, cubriremos algunos conceptos básicos relacionados con nuestro artículo que usaremos con frecuencia.
- Solicitud : Las requests son necesarias para jugar con la web. Si desea utilizar API, descargar páginas completas de Facebook o hacer cualquier otra cosa agradable, deberá realizar una solicitud a la URL. Cuando se trata de API REST y web scraping, las requests son cruciales.
- Tkinter: Tkinter es el método más utilizado. Es una interfaz estándar de Python para el kit de herramientas Tk GUI proporcionado por Python. El enfoque más rápido y simple para construir aplicaciones GUI es con Python y Tkinter. Usar Tkinter para crear una GUI es una operación simple.
- API: Las API normalmente nos permiten obtener información de un servidor que nos ayuda en nuestros proyectos. Realizamos requests a las API utilizando diferentes métodos como, por ejemplo, GET, POST, etc.
Paquetes requeridos
Para hacer una GUI necesitamos instalar Tkinter.
pip install tkinter
Para realizar una solicitud de API, generalmente usamos una biblioteca de python llamada request .
pip install requests
Implementación paso a paso
Paso 1: Realización de una solicitud de API
Para realizar una solicitud GET a una API, usamos el método request.get() . Para este tutorial, usaremos una API de código abierto llamada Quotable . Tiene una ruta ‘/random’ que nos da una cotización aleatoria.
Python3
import requests # Response Object r = requests.get('https://api.quotable.io/random')
Paso 2: obtener los datos de la solicitud de API
Por lo general, las API devuelven los datos en formato JSON. Pero nuestra biblioteca de requests nos facilita las cosas y las convierte en un objeto de diccionario de Python. Podemos obtener esos datos mediante el método r .json() :
Python3
import requests r = requests.get('https://api.quotable.io/random') data = r.json()
Producción:
{‘_id’: ‘w4QwG7e8hNr7’, ‘tags’: [‘famous-quotes’], ‘content’: ‘El único Zen que encuentras en la cima
de las montañas es el Zen que traes allí.’, ‘author’: ‘Robert M. Pirsig’, ‘authorSlug’: ‘robert-m-pirsig’, ‘longitud’: 77, ‘dateAdded’: ‘2019-02-17’, ‘dateModified’: ‘2019-02-17’}
Paso 4: en este diccionario, solo importamos datos que están presentes en la clave de ‘contenido’ que podemos almacenar en una variable
quote = data['content']
Paso 5: Creación de una aplicación Tkinter básica
Entonces, aquí tenemos una aplicación Tkinter muy básica con un cuadro de texto y un botón
Python3
import tkinter as tk from tkinter import END, Text from tkinter.ttk import Button root = tk.Tk() root.title('Quoter') text_box = Text(root, height=10, width=50) get_button = Button(root, text="Get Quote", command=get_quote) text_box.pack() get_button.pack() root.mainloop()
Paso 6: crear una función de solicitud de API
Ahora crearemos una función que obtendrá los datos de la API y editaremos el cuadro de texto con esos datos:
- text_box .delete () elimina todo el texto que se encuentra actualmente en el widget TextBox del índice especificado. En este caso, es desde 1.0 hasta el final, lo que significa que se borrará todo el cuadro de texto.
- El text_box .insert() inserta datos en el TextBox desde el índice especificado. Como el índice es END, que en nuestro caso será el primer índice, insertará en el TextBox la cotización obtenida de la API.
Python3
def get_quote(): r = requests.get('https://api.quotable.io/random') data = r.json() quote = data['content'] text_box.delete('1.0', END) text_box.insert(END, quote)
Implementación de código
Python3
# import library import requests import tkinter as tk from tkinter import END, Text from tkinter.ttk import Button # create a main window root = tk.Tk() root.title('Quoter') # function that will get the data # from the API def get_quote(): # API request r = requests.get('https://api.quotable.io/random') data = r.json() quote = data['content'] # deletes all the text that is currently # in the TextBox text_box.delete('1.0', END) # inserts new data into the TextBox text_box.insert(END, quote) text_box = Text(root, height=10, width=50) get_button = Button(root, text="Get Quote", command=get_quote) text_box.pack() get_button.pack() root.mainloop()
Producción:
Al hacer clic en el botón se generaría una nueva cotización:
Publicación traducida automáticamente
Artículo escrito por indorexian y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA