Browse Source

requests ftw

master
Dimitri Merejkowsky 5 years ago
parent
commit
e297aae5e1
1 changed files with 32 additions and 8 deletions
  1. +32
    -8
      sessions/python-07.md

+ 32
- 8
sessions/python-07.md View File

@@ -236,17 +236,10 @@ C'est ce que vous voyez quand vous faites "show source"


Vous voyez parfois le code de retour (le plus connu étant 404) Vous voyez parfois le code de retour (le plus connu étant 404)


# API Web et navigateurs

Grosso modo, quand vous visitez une page, vous faites un GET,
et quand vous remplissez un formulaire, vous faites un POST

*C'est très simplifié* *C'est très simplifié*


# Utiliser une API Web # Utiliser une API Web


Grosso modo:

* Lire les conditions d'utilisation (important!) * Lire les conditions d'utilisation (important!)
* Regarder les URLs possibles et les paramètres attendus * Regarder les URLs possibles et les paramètres attendus
* Faire quelque chose avec la réponse * Faire quelque chose avec la réponse
@@ -256,7 +249,7 @@ Notez qu'on a *absolument* aucune connaissance du code qui tourne sur le serveur


# JSON # JSON


* Un format *texte*.
* Un format *texte*. (Comme HTML)
* *Très* utilisé justement pour échanger des données entre des machines différentes. * *Très* utilisé justement pour échanger des données entre des machines différentes.
* Implémenté dans plein de langages. * Implémenté dans plein de langages.


@@ -340,3 +333,34 @@ None | null
* Le nettoyer en introduisant des classes * Le nettoyer en introduisant des classes
* Le rendre plus flexible * Le rendre plus flexible
* Etc ... * Etc ...

# Requests

*La* librarie pour faire des requêtes HTTP en Python.

Malheureusement pas dans la librarie standard.

```python
import requests

>>> response = request.get(url)
>>> response.status_code
200 # si tout va bien
>>> response.text
"<!DOCTYPE html ..."> # le texte de la réponse
```

# Requests + JSON

```python
>>> response = requests.get(url)
>>> text = response.text
>>> data = json.loads(text)
```

Ou directement

```python
>>> response = requests.get(url)
>>> data = response.json()
```