Python-verzoeken: alles wat u moet weten



Deze blog zal je in detail door de module Python-verzoeken leiden. U raakt vertrouwd met GET- en POST-verzoeken, sessieobjecten, cookies en headers.

Python vraagt ​​elke dag bijna 400.000 downloads. Dit aantal is duidelijk genoeg om de populariteit hiervan te begrijpen . In de afgelopen jaren is de programmeertaal python voor veel ontwikkelaars de meest gewenste programmeertaal geworden. De concepten en bibliotheken zoals verzoeken is een van de vele redenen voor ontwikkelaars om over te stappen van andere programmeertalen naar Python. In deze blog gaan we in op de volgende onderwerpen:

Wat zijn Python-verzoeken?

Python-verzoeken zijn geschreven door Kenneth Reitz en hebben een licentie onder apache 2.0. Het is een mensvriendelijke HTTP-bibliotheek zoals vermeld op de officiële documentatiepagina. Het is gemakkelijk te gebruiken en wordt in principe gebruikt voor het doen van allerlei HTTP-verzoeken. Hieronder volgen enkele geavanceerde functies waarmee verzoeken worden geleverd:
  1. Blijf in leven en pooling van verbindingen
  2. Internationale domeinen en URL's
  3. Sessies met persistentie van cookies
  4. SSL-verificatie in browserstijl
  5. Automatische decodering van inhoud
  6. Basis- / samenvatting-authenticatie
  7. Elegante sleutel / waarde-cookies
  8. Automatische decompressie
  9. Unicode-antwoordinstanties
  10. HTTPs-proxy-ondersteuning
  11. Meerdelige bestandsuploads
  12. Streaming downloads
  13. Time-outs voor verbinding
  14. Gedeelde verzoeken
Dit zijn alle geavanceerde functies van de python-aanvraagbibliotheek, laten we proberen te begrijpen waarom we in de eerste plaats python-aanvragen gebruiken.

Waarom Python-verzoeken gebruiken?

Als het gaat om waarom gebruiken we python-verzoeken? de reden is vrij simpel. Als u Python-verzoeken gebruikt, hoeft u de query's niet handmatig toe te voegen aan uw URL's en postgegevens te coderen. Het maakt ons werk gemakkelijker bij het doen van http-verzoeken van welke aard dan ook.Nu we bekend zijn met python-verzoeken en waarom we ze in python gebruiken, laten we proberen te begrijpen hoe we verzoeken op ons project of systeem gaan installeren.

Hoe Python-verzoeken te installeren?

Het installatiegedeelte is ook heel eenvoudig. Als u de pipenv-installatie op uw systeem hebt geïnstalleerd, kunt u eenvoudig de volgende opdracht in de terminal uitvoeren.

$ pip installatieverzoeken

Hiermee wordt de bibliotheek met verzoeken op uw systeem geïnstalleerd. Er is nog een benadering om verzoeken te installeren. Als u pycharm gebruikt, kunt u verzoeken toevoegen aan de projectinterpreter in de instellingen. Het dient hetzelfde doel als de terminal in geval van installatie van de bibliotheek op ons project.Nu we klaar zijn met de installatie, laten we proberen te begrijpen hoe we verzoeken voor ophalen en posten in python zullen maken.

Hoe kunt u verzoeken indienen en plaatsen?

Get request wordt in principe gebruikt om de gegevens van de server op te vragen. Hieronder volgt de syntaxis om een ​​ophaalverzoek te doen.
importverzoeken res = requests.get ('url') #res is hier het antwoordobject.
Postverzoek wordt gebruikt om de te verwerken gegevens naar de server te sturen. Hieronder volgt de syntaxis om een ​​postverzoek te doen.
importverzoeken payload = {'key1': 'value1'} res = requests.post ('url', data = payload)
Nu we weten hoe we get- en postverzoeken kunnen doen, laten we eens kijken hoe we parameters aan de url kunnen doorgeven met behulp van het get-verzoek.

Parameters doorgeven in een URL

Het doorgeven van parameters in een url is net zo eenvoudig als het doen van een ophaalverzoek. Hieronder volgt een voorbeeld om parameters door te geven aan url.
importverzoeken payload = {'key1': 'value1', 'key2': 'value2'} res = requests.get ('url', params = payload) print (res.url) #dit zal de url met de parameters printen het Get-verzoek doorlopen.

Status code

We kunnen ook de statuscode controleren, hierna volgt de code om de statuscode te controleren:





importverzoeken res = requests.get ('url') print (res.status_code ())
Als de code 200 retourneert, betekent dit dat er geen fout is en dat het verzoek in orde is. Als we een slecht verzoek doen, retourneert de code code zoals 404 of 505, wat een http-fout veroorzaakt.

Reactie-inhoud

We kunnen ook de inhoud van de reactie van de server lezen. De bibliotheek decodeert automatisch de inhoud van de server.
importverzoeken res = requests.get ('url') print (res.content)

Requests heeft ook een ingebouwde json-decoder.

importverzoeken res = requests.get ('url') print (res.json ()) #dit krijgt het antwoord in een json-indeling

Meerdelige bestandsupload

Het is heel gemakkelijk om meerdelige bestanden te uploaden met behulp van verzoeken.
importverzoeken files = {'file': open ('filename', 'rb')} res = requests.post ('url', files = files) print (res.text)
Voor het verzenden van meerdere bestanden specificeren we meerdere bestanden in de parameter bestanden.

Cookies en kopteksten

We kunnen de responsheaders en cookies van de server bekijken met behulp van het responsobject. Hieronder volgt de code om de headers van de server te bekijken.
importverzoeken res = requests.get ('url') print (res.headers)
We kunnen ook aangepaste headers doorgeven aan de url. Laten we de code eens bekijken.
import requests headers = {'key1': 'value1'} res = requests.get ('url', headers = headers) print (res.headers)
Verzoeken veranderen het gedrag niet op basis van aangepaste kopteksten. Ze worden gewoon doorgegeven aan de laatste aanvraag. koekjes kan ook worden bekeken met behulp van het responsobject.
import verzoeken # om onze eigen cookies door te geven kunnen we de cookies parameter cookies = dict (cookies = 'working') res = requests.get ('url', cookies = cookies) print (res.text) gebruiken

Cookies worden geretourneerd in een RequestCookieJar, die werkt als een woordenboek maar ook een completere interface biedt, geschikt voor gebruik over meerdere domeinen of paden.



Sessie-object

Met het sessieobject kunt u bepaalde parameters behouden voor alle verzoeken.
  • Houdt cookies aan voor alle verzoeken van de sessie-instantie
  • Gebruik urllib3-verbindingspooling
  • Aanzienlijke prestaties nemen toe
  • Een sessieobject heeft alle methoden van de API voor hoofdverzoeken
Hieronder volgt de code om sommige cookies bij verzoeken te behouden.
s = requests.session () s.get ('url') res = s.get ('url') print (res.text)

Fouten en uitzonderingen

Hieronder volgen de fouten en uitzonderingen die worden opgeworpen in een python-aanvraag.
  • In het geval van een netwerkprobleem, zullen verzoeken een ConnectionError-uitzondering veroorzaken.
  • Response.raise_for_status () zal een HTTP-fout veroorzaken als er een niet-succesvolle statuscode is.
  • Als er een time-out is, zal dit een time-out uitzondering veroorzaken
  • De uitzondering op TooManyRedirects wordt gegenereerd als het verzoek het geconfigureerde aantal maximale omleidingen overschrijdt.
In deze blog hebben we de module python requests besproken waarin we verschillende geavanceerde features hebben. We hebben de installatie besproken en het maken van een get en post-verzoek met de responsinhoud en andere concepten in de verzoekenbibliotheek in python. Python-verzoekenmodule is een van de vele buitengewone kant-en-klare functies van python programmeertaal . Je kunt je leren een vliegende start geven door je in te schrijven en ontdek de mogelijkheden van de programmeertaal Python. Heeft u vragen? vermeld ze in het opmerkingengedeelte, we nemen contact met u op.