- Čo je požiadavka Pythonu?
- Prečo používať požiadavky Pythonu?
- Ako nainštalovať požiadavky Pythonu?
- Vytváranie a odosielanie žiadostí
- Vkladanie parametrov do URL
- Stavový kód
- Obsah odpovede
- Viacdielne nahrávanie súborov
- Súbory cookie a hlavičky
- Objekt relácie
- Chyby a výnimky
Čo je požiadavka Pythonu?
Žiadosti o Python napísal Kenneth Reitz a licencovali ich pod apache 2.0. Je to ľudsky priateľská knižnica HTTP, ako je uvedené na stránke oficiálnej dokumentácie. Je ľahko použiteľný a v zásade sa používa na vytváranie najrôznejších požiadaviek HTTP. Nasleduje niekoľko pokročilých funkcií, s ktorými sa požiadavky spájajú:- Udržujte pri živote a zdieľanie pripojení
- Medzinárodné domény a adresy URL
- Relácie s perzistenciou súborov cookie
- Overenie SSL v prehliadači
- Automatické dekódovanie obsahu
- Základné / digest autentifikácie
- Elegantné súbory cookie typu kľúč / hodnota
- Automatická dekompresia
- Telá odpovedí Unicode
- Podpora proxy HTTPs
- Viacdielne nahrávanie súborov
- Streamované súbory na stiahnutie
- Časové limity pripojenia
- Kusové žiadosti
Prečo používať požiadavky Pythonu?
Pokiaľ ide o dôvod, prečo používame požiadavky v jazyku python? dôvod je dosť jednoduchý. Pri používaní požiadaviek pythonu nemusíte manuálne pridávať dotazy do svojich adries URL a kódovať údaje postov. Uľahčuje nám to prácu pri všetkých požiadavkách na server http.Teraz, keď už sme oboznámení s požiadavkami pythonu, a prečo ich v pythone používame, pokúsime sa pochopiť, ako nainštalujeme požiadavky do nášho projektu alebo systému.Ako nainštalovať požiadavky Pythonu?
Inštalačná časť je tiež veľmi jednoduchá. Ak máte vo svojom systéme nainštalované nastavenie pipenv, môžete v termináli jednoducho spustiť nasledujúci príkaz.$ pip požiadavky na inštaláciu
Týmto sa nainštaluje knižnica požiadaviek do vášho systému. K požiadavkám na inštaláciu existuje ešte jeden prístup. Ak používate pycharm, môžete v nastaveniach pridať požiadavky na tlmočníka projektu. Slúži na rovnaký účel ako terminál v prípade inštalácie knižnice do nášho projektu.Teraz, keď sme s inštaláciou skončili, pokúsime sa pochopiť, ako urobíme požiadavky na získanie a odoslanie v pythone.Ako podať žiadosť a zverejniť žiadosť?
Získať požiadavku sa v zásade používa na vyžiadanie údajov zo servera. Nasleduje syntax, ktorá umožňuje zadanie žiadosti o získanie.import request res = requests.get ('url') #res je tu objekt odpovede.Žiadosť o príspevok sa používa na odoslanie údajov, ktoré sa majú spracovať, na server. Nasleduje syntax na odoslanie žiadosti o príspevok.
import požiadaviek payload = {'key1': 'value1'} res = requests.post ('url', data = payload)Teraz, keď vieme, ako môžeme vytvárať a odosielať žiadosti, sa pozrime na to, ako dokážeme prostredníctvom žiadosti get odovzdať parametre na adresu URL.
Predávanie parametrov v adrese URL
Zadanie parametrov do adresy URL je také jednoduché ako zadanie požiadavky na získanie. Nasleduje príklad na odovzdanie parametrov do adresy URL.import request payload = {'key1': 'value1', 'key2': 'value2'} res = requests.get ('url', params = payload) print (res.url) # toto vytlačí adresu URL s parametrami prešiel požiadavkou na získanie.
Stavový kód
Môžeme tiež skontrolovať stavový kód. Nasleduje kód na kontrolu stavového kódu:
čo je metóda skrývajúca sa v jave
import request res = requests.get ('url') print (res.status_code ())Ak kód vráti 200, znamená to, že nedošlo k žiadnej chybe a požiadavka je v poriadku. Ak zadáme nesprávnu žiadosť, kód vráti kód ako 404 alebo 505, čo spôsobí chybu http.
Obsah odpovede
Môžeme si tiež prečítať obsah odpovede servera. Knižnica automaticky dekóduje obsah zo servera.import request res = requests.get ('url') print (res.content)
Žiadosť má tiež zabudovaný dekodér json.
import request res = requests.get ('url') print (res.json ()) # toto dostane odpoveď vo formáte json
Viacdielne nahrávanie súborov
Nahrávanie viacdielnych súborov pomocou požiadaviek je veľmi jednoduché.import request files = {'file': open ('názov súboru', 'rb')} res = requests.post ('url', súbory = súbory) print (res.text)Pre zasielanie viacerých súborov zadáme v parametri súbory viac súborov.
Súbory cookie a hlavičky
Pomocou objektu odpovede môžeme zobraziť hlavičky odpovedí a súbory cookie servera. Nasleduje kód na zobrazenie hlavičiek servera.import request res = requests.get ('url') print (res.headers)Na adresu URL môžeme odovzdať aj vlastné hlavičky. Poďme sa pozrieť na kód.
hlavičky požiadaviek na import = {'key1': 'value1'} res = requests.get ('url', headers = headers) print (res.headers)Žiadosť nezmení svoje správanie na základe vlastných hlavičiek. Jednoducho sa odovzdajú poslednej žiadosti. cookies je možné zobraziť aj pomocou objektu odpovede.
import požiadaviek # na odovzdanie vlastných cookies môžeme použiť parameter cookies cookies = dict (cookies = 'working') res = requests.get ('url', cookies = cookies) print (res.text)
Súbory cookie sa vracajú v RequestCookieJar, ktorý funguje ako slovník, ale ponúka aj úplnejšie rozhranie vhodné na použitie vo viacerých doménach alebo cestách.
Objekt relácie
Objekt relácie vám umožňuje pretrvávať určité parametre v rámci požiadaviek.- Zachová súbory cookie vo všetkých požiadavkách vykonaných z inštancie relácie
- Použite združovanie pripojení urllib3
- Významný nárast výkonu
- Objekt relácie má všetky metódy rozhrania API hlavných požiadaviek
s = requests.session () s.get ('url') res = s.get ('url') print (res.text)
Chyby a výnimky
Nasledujú chyby a výnimky, ktoré sú vyvolané v požiadavke pythonu.- V prípade problému so sieťou vyvolajú požiadavky výnimku ConnectionError.
- Response.raise_for_status () vyvolá chybu HTTP, ak sa vyskytne neúspešný stavový kód.
- Ak dôjde k vypršaniu časového limitu, vyvolá to výnimku vypršania časového limitu
- Výnimka TooManyRedirects sa vyvolá, ak požiadavka prekročí nakonfigurovaný počet maximálneho počtu presmerovaní.