user
Comment faire une requête AJAX en Python ?
alphonsio

Les requêtes AJAX peuvent être facilement réalisées grâce à la bibliothèque Requests pour Python.

from requests import Session
response = Session().post(
    url='https://postman-echo.com/post',    
    data={ 'cle1': "valeur1", 'cle2': "valeur2" }
)
print (response.text)

Pour faire une requête AJAX en Python, vous pouvez utiliser des bibliothèques telles que Requests, http.client ou AIOHTTP

AJAX (Asynchronous JavaScript and XML) est généralement utilisé dans le contexte du développement web côté client avec JavaScript pour interagir de manière asynchrone avec un serveur. Cependant, en Python, vous pouvez faire des requêtes HTTP asynchrones ou synchrones vers des API ou des serveurs web.

Voici un exemple simple utilisant la bibliothèque requests pour effectuer une requête HTTP en Python :

Installation de la bibliothèque requests

Si vous n'avez pas déjà installé la bibliothèque requests, vous pouvez l'installer via pip :

pip install requests

Exemple de requête GET

import requests

# URL de l'API ou du serveur web
url = "https://jsonplaceholder.typicode.com/todos/1"

# Faire une requête GET
response = requests.get(url)

# Vérifier le statut de la réponse
if response.status_code == 200:
    # Traiter la réponse JSON
    data = response.json()
    print(data)
else:
    print(f"Erreur : {response.status_code}")

La réponse attendue est au format JSON converti en dictionnnaire :

{'userId': 1, 'id': 1, 'title': 'delectus aut autem', 'completed': False}

Exemple de requête POST

import requests

# URL de l'API ou du serveur web
url = "https://jsonplaceholder.typicode.com/posts"

# Données à envoyer dans la requête POST
data = {
    "title": "foo",
    "body": "bar",
    "userId": 1
}

# Faire une requête POST
response = requests.post(url, json=data)

# Vérifier le statut de la réponse
if response.status_code == 201:
    # Traiter la réponse JSON
    response_data = response.json()
    print(response_data)
else:
    print(f"Erreur : {response.status_code}")

Comme précédemment, la réponse attendue est au format JSON converti en dictionnnaire :

{'title': 'foo', 'body': 'bar', 'userId': 1, 'id': 101}

Requêtes asynchrones avec aiohttp

Pour des requêtes asynchrones, vous pouvez utiliser la bibliothèque aiohttp.

Installation de la bibliothèque aiohttp

pip install aiohttp

Exemple de requête GET asynchrone

import aiohttp
import asyncio

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            if response.status == 200:
                data = await response.json()
                print(data)
            else:
                print(f"Erreur : {response.status}")

# URL de l'API ou du serveur web
url = "https://jsonplaceholder.typicode.com/todos/1"

# Lancer l'événement asyncio
asyncio.run(fetch(url))

Exemple de requête POST asynchrone

import aiohttp
import asyncio

async def post_data(url, data):
    async with aiohttp.ClientSession() as session:
        async with session.post(url, json=data) as response:
            if response.status == 201:
                response_data = await response.json()
                print(response_data)
            else:
                print(f"Erreur : {response.status}")

# URL de l'API ou du serveur web
url = "https://jsonplaceholder.typicode.com/posts"

# Données à envoyer dans la requête POST
data = {
    "title": "foo",
    "body": "bar",
    "userId": 1
}

# Lancer l'événement asyncio
asyncio.run(post_data(url, data))

Ces exemples montrent comment faire des requêtes HTTP synchrones et asynchrones en Python en utilisant requests et aiohttp respectivement.