3.1 Módulo requests
Para trabajar con Internet en Python de manera básica, hay una biblioteca llamada requests. Ofrece una interfaz cómoda para trabajar con la red, permitiendo enviar solicitudes HTTP y recibir respuestas con un mínimo de esfuerzo.
Esta biblioteca no viene con Python, así que antes de usarla necesitas instalarla usando el gestor de paquetes.
Abre tu terminal y escribe:
pip install requests
Después de instalar la biblioteca, puedes usar el módulo requests en tus proyectos. Por ejemplo, así puedes determinar tu dirección IP externa:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # Muestra el código de estado de la respuesta
print(response.json()) # Muestra la respuesta JSON
Aquí enviamos una solicitud al servicio (sitio) ip.jsontest.com, que devuelve un objeto JSON con la dirección IP desde la cual se hizo la solicitud. La solicitud y la obtención de la respuesta se realiza en una sola línea — es muy conveniente. En las otras líneas simplemente imprimimos la respuesta del servidor.
En el ejemplo anterior, llamamos al método get(); a continuación te hablaré de este método y de otros métodos del objeto requests.
3.2 Lista de métodos
El objeto requests tiene métodos para todas las ocasiones, es decir, un método para cada tipo de solicitud HTTP.
| Método | Descripción |
|---|---|
requests.get() |
Envía una solicitud GET para obtener datos del servidor. |
requests.post() |
Envía una solicitud POST para enviar datos al servidor. |
requests.put() |
Envía una solicitud PUT para actualizar datos en el servidor. |
requests.delete() |
Envía una solicitud DELETE para eliminar datos del servidor. |
requests.head() |
Envía una solicitud HEAD para obtener encabezados sin cuerpo de respuesta. |
requests.options() |
Envía una solicitud OPTIONS para obtener métodos y parámetros soportados por el servidor. |
requests.patch() |
Envía una solicitud PATCH para actualizar parcialmente datos en el servidor. |
requests.request() |
Método principal para enviar todo tipo de solicitudes HTTP. |
A continuación veremos las más básicas.
3.3 Envío de solicitud GET y solicitud POST
Una solicitud GET usualmente consiste solo en una URL, o puede contener una cadena adicional de parámetros.
1. Envío de una solicitud GET pura
La solicitud GET se usa para obtener datos del servidor. El parámetro obligatorio es la URL a la que se envía la solicitud.
Ejemplo:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # Muestra el código de estado de la respuesta
print(response.json()) # Muestra la respuesta JSON
2. Envío de solicitud GET con parámetros
También la URL puede contener parámetros adicionales en forma de cadena key=value&key2=value2&…
En nuestro caso, los parámetros se pasan en forma de diccionario y la variable params:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. Envío de solicitud POST
La solicitud POST puede contener un cuerpo de solicitud: texto, JSON o incluso una imagen.
Ejemplo:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 Envío de solicitud PUT y solicitud DELETE
1. Envío de solicitud PUT
La solicitud PUT se usa para actualizar datos en el servidor.
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. Envío de solicitud DELETE
La solicitud DELETE se usa para eliminar datos del servidor.
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
Para entender mejor la esencia de las solicitudes GET, POST, PUT y DELETE, necesitas leer las lecciones sobre cómo funciona la red, Internet, la web y HTTP. Todo esto te espera en un futuro cercano.
GO TO FULL VERSION