Use el módulo de solicitudes para publicar datos de formulario en Python

Migel Hewage Nimesha 15 febrero 2024
Use el módulo de solicitudes para publicar datos de formulario en Python

Este tutorial describe el módulo de requests de Python e ilustra cómo podemos usar este módulo para publicar datos de formulario en Python.

Use el módulo requests para publicar datos de formulario en Python

Python se puede usar para acceder a páginas web y también para publicar contenido en las páginas web.

Ya sea que haya diferentes módulos como httplib, urllib, httplib2, etc., el módulo requests en Python es el más simple y puede escribir programas poderosos que involucran los métodos GET y POST.

La biblioteca de requests es uno de los aspectos principales de Python para crear solicitudes HTTP a una URL definida.

Introducción al método de solicitud POST

El HTTP de la World Wide Web admite el método de solicitud POST. Al considerar el formato, el método de solicitud POST solicita que un servidor web acepte los datos incluidos en el cuerpo del mensaje de solicitud, aparentemente almacenándolos.

A menudo lo usamos para cargar un archivo o enviar un formulario web finalizado. Por ejemplo, post() envía una solicitud POST a una URL específica. También podemos usarlo cuando necesitamos enviar algunos datos al servidor.

Datos clave sobre la solicitud POST

  • No tiene restricciones en la longitud de los datos y se configura según sea necesario.
  • No vive en el historial del navegador.
  • Nunca se almacena en caché.
  • No puede ser un marcador.

Instalación del Módulo requests en Python

El módulo de requests que se necesita para usar el método post() se puede instalar usando el siguiente comando:

python -m pip install requests

O

pip install requests

Podemos usar el siguiente comando si pipenv administra paquetes de Python.

pipenv install requests

Una vez que se instala el módulo de requests, se puede importar y utilizar en el programa de la siguiente manera:

import requests

Ahora, ¿cómo usar el método requests.post()? ¿Cuál es la sintaxis para ello? Aprendamos a continuación.

Sintaxis:

requests.post(url, data={key: value}, json={key: value}, args)

Aquí, args es igual a 0 o más de los argumentos nombrados como los siguientes parámetros:

Parámetro Descripción
url La URL de la solicitud es una parte importante.
data Opcional. Se envía un diccionario, una lista de tuplas, bytes o un objeto de archivo a la URL especificada.
json Opcional. Un objeto JSON para dirigir a la URL especificada.
files Opcional. Un directorio de archivos para pasar a la URL especificada.
allow_redirects Opcional. Un valor booleano para habilitar o deshabilitar la redirección. El valor predeterminado es True, lo que significa permitir redireccionamientos.
auth Opcional. Una tupla para habilitar una autenticación HTTP específica. El valor por defecto es Ninguno.
cert Una cadena o tupla que especifica un archivo certificado o clave. Opcional donde el valor por defecto es Ninguno.
cookies El diccionario de cookies para enviar a la URL especificada es opcional y el valor predeterminado es Ninguno.
headers Opcional, Predeterminado Ninguno, un diccionario de encabezados HTTP para enviar a la URL definida.
proxies Opcional, predeterminado Ninguno, un diccionario de protocolo para la URL del proxy.
stream Una indicación booleana de la respuesta, ya sea False (descargado) o True (Transmitido). Opcional, predeterminado False.
timeout Opcional, un número que indica el tiempo que esperó el cliente para realizar una conexión y/o enviar una respuesta. El valor por defecto es Ninguno. Significa que la solicitud continuará hasta que se cierre la conexión.
verify Una indicación booleana o de cadena para verificar o no el certificado TLS del servidor. Opcional. El valor por defecto es verdadero".

Aplicaciones del Método post()

La cerca de código a continuación demuestra el uso del método post() donde el usuario publica datos en el sitio web httpbin a través del método post() y obtiene una respuesta sobre cómo se publica.

import requests

values = {"username": "user", "password": "test"}
result = requests.post("https://httpbin.org/post", data=values)
print(result.text)

Producción:

use el módulo de solicitudes para publicar datos de formulario en python - solicite la imagen uno

Se recibe un objeto de respuesta, que contiene mucha información. Primero, el objeto formulario con las claves y valores donde nombre de usuario es usuario y contraseña es prueba. Luego, el objeto de encabezado contiene algunas propiedades: Siguiente, JSON, origen y URL.

Para publicar un archivo codificado en varias partes, realice una solicitud POST de varias partes enviando un archivo al servidor usando la propiedad de archivo del método post().

import requests

files = {"file": open("test.txt", "rb")}
url = "https://httpbin.org/post"
result = requests.post(url, files=files)

print(result.text)

Producción:

use el módulo de solicitudes para publicar datos de formulario en python - solicite la imagen dos

Como salida, se devolvió un objeto de datos vacío y se obtuvo el objeto de archivos, un atributo de archivo cuyo valor es el contenido del archivo (el contenido del archivo test.txt creado en el directorio de trabajo que era Test Text).

Para realizar solicitudes POST dentro de una sesión, configure una cookie en una URL y luego realice una solicitud nuevamente para evaluar si la cookie está configurada. Las sesiones también son útiles cuando un usuario necesita enviar los mismos datos en todas las solicitudes. Por ejemplo:

import requests

s = requests.Session()
s.cookies.update({"month-visit": "July"})

request01 = s.get("http://httpbin.org/cookies")
print(request01.text)
# outputs details on the "month-visit" cookie

request02 = s.get("http://httpbin.org/cookies", cookies={"year-visit": "2022"})
print(request02.text)
# outputs details on "month-visit" and "year-visit" cookie

request03 = s.get("http://httpbin.org/cookies")
print(request03.text)
# outputs details on the "month-visit" cookie

Producción:

use el módulo de solicitudes para publicar datos de formulario en python - solicite la imagen tres

Como en el resultado, la cookie de sesión de visita mensual se pasa con las tres solicitudes. Pero la cookie de visita anual solo se pasa durante la segunda solicitud.

No hay una cookie de visita anual en la tercera solicitud. Por lo tanto, esto confirma que las cookies u otros datos establecidos en solicitudes individuales no pasarán con otras solicitudes de sesión.

Al considerar los beneficios de post(), es más seguro que el método GET porque la información ingresada por el usuario nunca es visible en la cadena de consulta de URL o en los registros del servidor.

Hay un límite mucho mayor en la cantidad de datos que podemos enviar, y una persona puede enviar un texto o datos binarios como cargar un archivo usando el método POST.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artículo relacionado - Python Requests