Maison  >  Article  >  développement back-end  >  Résumé et résumé 1 : Utilisation des demandes

Résumé et résumé 1 : Utilisation des demandes

coldplay.xixi
coldplay.xixiavant
2020-11-19 17:17:553919parcourir

Tutoriel vidéo PythonLa colonne résume l'utilisation des requêtes

Résumé et résumé 1 : Utilisation des demandes

Cet article est organisé sur la base de documents officiels, et les interfaces de données sont toutes fournies dans des documents officiels

Selon les documents officiels, la demande est un non-OGM Bibliothèque HTTP Python. Fonctions puissantes et syntaxe concise. On peut dire que les requêtes sont inévitables lors de l’écriture de programmes Web en Python.
Bien que les requêtes soient simples à utiliser, la plupart de ses fonctions n'ont pas besoin d'être utilisées fréquemment. Mais il est plus fastidieux de vérifier la documentation lorsque vous devez l'utiliser. Donc je souhaite aussi faire un tri et une synthèse. C'est pratique pour vous et pour les autres.

Joindre l'adresse officielle du document

# 安装。注意,千万别安装成request,别少了末尾的spip install resquests复制代码

Demandes de base

Importez d'abord le module Requêtes

import requests复制代码

Diverses méthodes de requête

r = requests.get('http://httpbin.org/get')# post带参r = requests.post('http://httpbin.org/post', data={'key': 'value'})
r = requests.put('http://httpbin.org/put', data={'key': 'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')复制代码

requests permet de transmettre des paramètres d'URL. En transmettant des paires clé-valeur de paramètres à la variable params, les requêtes construiront automatiquement l'URL correspondante.

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)# 注意,字典里值为的None的键并不会被拼接到URL中# 同时,你还可以将列表作为值进行传入payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
r = requests.get('http://httpbin.org/get', params=payload)
print(r.url)>>> http://httpbin.org/get?key1=value1&key2=value2&key2=value3复制代码

Contenu de la réponse

Renvoie les données Unicode du contenu de la réponse via text. les requêtes décodent automatiquement le contenu du serveur.

# 在需要读取文本信息时,可使用text进行获取r = requests.get('http://httpbin.org/get')
r.text复制代码

renvoie les données en octets (binaires) du contenu de la réponse via content.

# 在需要获取文件时,可通过content获取# 例如获取一张图片并保存r = requests.get('http://httpbin.org/get/xxx.jpg')with open('example.jpg', 'wb') as img:
    img.write(r)复制代码

traite les données json de réponse via json().

import requests
r = requests.get('http://httpbin.org/get')
r.json()复制代码

Personnaliser les en-têtes de requête

Ajoutez des en-têtes à la requête, passez simplement dict au paramètre headers

# HTTP头部大小写是不敏感的headers = {    'token': token,    'content-type': 'application/json'}
url = 'http://httpbin.org/get'r = requests.get(url, headers=headers)复制代码

POST pour envoyer des données hors formulaire

Lorsque la demande de publication a un corps de requête, vous pouvez utiliser le module json pour encoder les données

url = 'http://httpbin.org/get'body = {'data': data}
r = requests.post(url, data=json.dumps(body))复制代码

En plus d'utiliser json pour l'encodage, vous pouvez également transmettre directement la valeur du json paramètre

url = 'http://httpbin.org/get'body = {'data': data}
r = requests.post(url, json=body)复制代码

Télécharger des fichiers via POST

Après avoir lu le fichier sous forme binaire à l'aide de la méthode open, vous pouvez facilement télécharger le fichier

url = 'http://httpbin.org/post'files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)# 同时,可以显式地设置文件名、文件类型和请求头url = 'http://httpbin.org/post'files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
r = requests.post(url, files=files)复制代码

Envoyer un cookie

Vous pouvez transmettre le cookie en passant des paramètres au paramètre cookies

url = 'http://httpbin.org/cookies'cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies)# 在跨域使用时,可以通过RequestsCookieJar进行域名和路径的定义jar = requests.cookies.RequestsCookieJar()
jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')
jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')
url = 'http://httpbin.org/cookies'r = requests.get(url, cookies=jar)复制代码

Obtenir les informations de réponse

Obtenir le code d'état de la réponse via status_code

r = requests.get('http://httpbin.org/get')
r.status_code>>> 200# requests内置一个状态码查询对象print(r.status_code == requests.codes.ok)>>> True# 如果发生了4xx或者5xx的错误响应,可以使用raise_for_status()函数来抛出异常bad_r = requests.get('http://httpbin.org/status/404')
bad_r.status_code>>> 404bad_r.raise_for_status()# 如果请求没有发生错误,则raise_for_status()返回None复制代码

via headers Obtenir les en-têtes de réponse

r = requests.get('http://httpbin.org/get')
r.headers>>> {       'content-encoding': 'gzip',       'transfer-encoding': 'chunked',       'connection': 'close',       'server': 'nginx/1.0.4',       'x-runtime': '148ms',       'etag': '"e1ca502697e5c9317743dc078f67693f"',       'content-type': 'application/json'
   }   
# 同时,我们可以通过任意大小写形式来访问这些响应头字段r.headers['Content-Type']>>> 'application/json'r.headers.get('content-type')>>> 'application/json'复制代码

Obtenir les données des cookies via cookies

url = 'http://example.com/some/cookie/setting/url'r = requests.get(url)
r.cookies['example_cookie_name']>>> 'example_cookie_value'复制代码

Redirection et historique des demandes

Par défaut, les demandes traiteront automatiquement toutes les redirections sauf les requêtes HEAD
Le suivi des redirections peut être effectué via la méthode history

# 例如Github 将所有的HTTP请求重定向到HTTPSr = requests.get('http://github.com')

r.url>>> 'https://github.com/'r.status_code>>> 200# 如果使用的时GET、OPTIONS、POST、PUT、PATCH、DELETE请求时,可以通过设置allow_redirects=False来禁用重定向r = requests.get('http://github.com', allow_redirects=False)
r.status_code>>> 301# 也可以通过设置allow_redirects=True来启用HEAD请求的重定向r = requests.head('http://github.com', allow_redirects=True)复制代码

Enfin

cet article est un résumé de l'utilisation de base des requêtes. Nous nous référerons plus tard à la documentation officielle pour résumer certaines utilisations avancées. Trions l'utilisation avancée des requêtes. Une utilisation compétente des requêtes aura pour effet d'obtenir deux fois le résultat avec la moitié de l'effort lors du développement Web.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer