Zahteve Pythona: vse, kar morate vedeti



Ta blog vas bo podrobno popeljal skozi modul za zahteve python. Spoznali boste zahteve GET in POST, predmete seje, piškotke in glave.

Python vsak dan zahteva skoraj 400.000 prenosov. Ta številka je dovolj očitna, da lahko razumemo njeno priljubljenost . V zadnjih letih je programski jezik python postal najbolj zaželen programski jezik za številne razvijalce. Koncepti in knjižnice, kot so zahteve, so eden od mnogih razlogov za prehod razvijalcev iz drugih programskih jezikov v python. V tem blogu bomo preučili naslednje teme:

Kaj so zahteve Pythona?

Zahteve za Python je napisal Kenneth Reitz in licenciral pod apache 2.0. Je človeku prijazna knjižnica HTTP, kot je omenjena na uradni strani z dokumentacijo. Je enostaven za uporabo in v osnovi se uporablja za izdelavo vseh vrst HTTP zahtev. Sledi nekaj naprednih funkcij, ki jih dobite z zahtevami:
  1. Ohranite življenje in združite povezave
  2. Mednarodne domene in URL-ji
  3. Seje z vztrajnostjo piškotkov
  4. Preverjanje SSL v obliki brskalnika
  5. Samodejno dekodiranje vsebine
  6. Osnovna overitev / preverjanje pristnosti
  7. Elegantni piškotki ključ / vrednost
  8. Samodejna dekompresija
  9. Odzivna telesa Unicode
  10. Podpora proxy HTTP-jev
  11. Nalaganje večdelnih datotek
  12. Pretakanje prenosov
  13. Časovne omejitve povezave
  14. Razdeljene zahteve
To so vse napredne funkcije knjižnice zahtev python, zato poskusimo razumeti, zakaj sploh uporabljamo zahteve python.

Zakaj uporabljati zahteve Python?

Zakaj uporabljamo zahteve pythona? razlog je precej preprost. Medtem ko uporabljate zahteve python, vam ni treba ročno dodajati poizvedb v svoje URL-je in kodirati podatke v obliki. To nam olajša delo pri kakršnih koli http zahtevah.Zdaj, ko smo seznanjeni z zahtevami pythona in zakaj jih uporabljamo v pythonu, poskusimo razumeti, kako bomo namestili zahteve v naš projekt ali sistem.

Kako namestiti zahteve za Python?

Tudi namestitveni del je zelo enostaven. Če je v vašem sistemu nameščena namestitev pipenv, lahko preprosto zaženete naslednji ukaz v terminalu.

Zahteve za namestitev $ pip

To bo namestilo knjižnico zahtev v vaš sistem. Obstaja še en pristop k namestitvi zahtev. Če uporabljate pycharm, lahko v nastavitvah dodate zahteve za tolmač projekta. Služi istemu namenu kot terminal v primeru namestitve knjižnice v naš projekt.Zdaj, ko smo končali z namestitvijo, poskusimo razumeti, kako bomo podajali zahteve za pridobivanje in objavljanje v pythonu.

Kako narediti zahteve za pošiljanje in objavljanje?

Zahteva za pridobitev se v bistvu uporablja za zahtevo podatkov s strežnika. Sledi sintaksa za zahtevo za pridobitev.
uvoz zahtev res = request.get ('url') #res je tukaj odzivni objekt.
Zahteva za objavo se uporablja za pošiljanje podatkov, ki jih je treba obdelati, na strežnik. Sledi sintaksa za pošiljanje zahteve za objavo.
uvoz zahteva koristno breme = {'key1': 'value1'} res = request.post ('url', data = payload)
Zdaj, ko vemo, kako lahko naredimo zahteve za pridobivanje in objavljanje, si oglejmo, kako lahko s pomočjo zahteve za pridobivanje posredujemo parametre na url.

Prenos parametrov v url

Prenos parametrov v url je tako preprost kot podajanje zahteve za pridobitev. Sledi primer posredovanja parametrov url-u.
uvozi zahteve payload = {'key1': 'value1', 'key2': 'value2'} res = request.get ('url', params = payload) print (res.url) # to bo natisnilo url s parametri skozi prošnjo za pridobitev.

Koda stanja

Kodo stanja lahko preverimo tudi mi, spodaj je koda za preverjanje statusne kode:





uvozi zahteve res = request.get ('url') print (res.status_code ())
Če koda vrne 200, to pomeni, da ni nobene napake in je prošnja v redu. Če naredimo slabo zahtevo, bo koda vrnila kodo, kot je 404 ali 505, kar bo povzročilo napako http.

Vsebina odziva

Preberemo lahko tudi vsebino odgovora strežnika. Knjižnica bo samodejno dekodirala vsebino s strežnika.
uvozi zahteve res = request.get ('url') print (res.content)

Requests ima tudi vgrajen json dekoder.

zahteve za uvoz res = request.get ('url') print (res.json ()) # to bo dobilo odgovor v obliki json

Nalaganje večdelne datoteke

Nalaganje večdelnih datotek z uporabo zahtev je zelo enostavno.
uvoz zahtev datotek = {'datoteka': odprto ('ime datoteke', 'rb')} res = request.post ('url', files = files) print (res.text)
Za pošiljanje več datotek bomo v parametru datotek določili več datotek.

Piškotki in glave

Z odzivnim predmetom si lahko ogledamo glave odzivov strežnika in piškotke. Sledi koda za ogled strežnikovih glav.
uvozi zahteve res = request.get ('url') print (res.headers)
Glave po meri lahko posredujemo tudi na url. Oglejmo si kodo.
uvoz zahtev zaglavja = {'key1': 'value1'} res = request.get ('url', headers = headers) print (res.headers)
Zahteve ne spremenijo njegovega vedenja glede na glave po meri. Preprosto se prenesejo na končno zahtevo. piškotki si lahko ogledate tudi s pomočjo odzivnega predmeta.
zahteve za uvoz #za posredovanje lastnih piškotkov lahko uporabimo parameter piškotki piškotki = dict (piškotki = 'delujoči') res = prošnje.get ('url', piškotki = piškotki) print (res.text)

Piškotki se vrnejo v RequestCookieJar, ki deluje kot slovar, vendar ponuja tudi popolnejši vmesnik, primeren za uporabo na več domenah ali poteh.



Predmet seje

Objekt seje vam omogoča, da vztrajate pri določenih parametrih v zahtevah.
  • V vseh zahtevah iz primerka seje ostanejo piškotki
  • Uporabite združevanje povezav urllib3
  • Znatno povečanje zmogljivosti
  • Objekt seje ima vse metode API-ja glavnih zahtev
Sledi koda za ohranitev nekaterih piškotkov med zahtevami.
s = request.session () s.get ('url') res = s.get ('url') print (res.text)

Napake in izjeme

Sledijo napake in izjeme, ki se pojavijo v zahtevi python.
  • V primeru težave z omrežjem bodo zahteve sprožile izjemo ConnectionError.
  • Response.raise_for_status () bo povzročil napako HTTP, če je koda stanja neuspešna.
  • Če pride do časovne omejitve, bo sprožila izjemo časovne omejitve
  • Izjema TooManyRedirects se sproži, če zahteva preseže nastavljeno število največjega števila preusmeritev.
V tem blogu smo razpravljali o modulu za zahteve python, v katerem imamo različne napredne funkcije. Razpravljali smo o namestitvi in ​​izdelavi zahteve za pridobitev in objavo z vsebino odziva in drugimi koncepti v knjižnici zahtev v pythonu. Modul za zahteve Python je ena izmed številnih izjemnih lastnosti, ki so na voljo programski jezik python . S svojim učenjem lahko začnete z vpisom in odkrijte možnosti programskega jezika python. Imate kakšna vprašanja? omenite jih v oddelku za komentarje, odgovorili vam bomo.