- Kaj so zahteve Pythona?
- Zakaj uporabljati zahteve Python?
- Kako namestiti zahteve za Python?
- Pošiljanje zahtev za pridobivanje in objavljanje
- Prenos parametrov v URL
- Koda stanja
- Vsebina odziva
- Večdelni prenos datotek
- Piškotki in glave
- Predmet seje
- Napake in izjeme
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:- Ohranite življenje in združite povezave
- Mednarodne domene in URL-ji
- Seje z vztrajnostjo piškotkov
- Preverjanje SSL v obliki brskalnika
- Samodejno dekodiranje vsebine
- Osnovna overitev / preverjanje pristnosti
- Elegantni piškotki ključ / vrednost
- Samodejna dekompresija
- Odzivna telesa Unicode
- Podpora proxy HTTP-jev
- Nalaganje večdelnih datotek
- Pretakanje prenosov
- Časovne omejitve povezave
- Razdeljene zahteve
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
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.