„Python“ užklausos: viskas, ką reikia žinoti



Šis tinklaraštis išsamiai apžvelgs „python“ užklausų modulį. Susipažinsite su GET ir POST užklausomis, seanso objektais, slapukais ir antraštėmis.

„Python“ kasdien reikalauja beveik 400 000 atsisiuntimų. Šis skaičius yra pakankamai akivaizdus, ​​kad suprastumėte apie šio populiarumą . Pastaraisiais metais Python programavimo kalba tapo labiausiai norima programavimo kalba daugeliui kūrėjų. Sąvokos ir bibliotekos, pvz., Užklausos, yra viena iš daugelio priežasčių, kodėl kūrėjai pereina nuo kitų programavimo kalbų prie python. Šiame tinklaraštyje nagrinėsime šias temas:

Kas yra „Python“ užklausos?

„Python“ užklausas parašė Kennethas Reitzas ir licencijavo pagal apache 2.0. Tai yra žmonėms pritaikyta HTTP biblioteka, kaip minima oficialiame dokumentacijos puslapyje. Tai paprasta naudoti ir iš esmės naudojama atliekant visų rūšių HTTP užklausas. Toliau pateikiamos kelios išplėstinės užklausų funkcijos:
  1. Palaikykite gyvą ir sujungite jungtis
  2. Tarptautiniai domenai ir URL
  3. Sesijos su slapukų atkaklumu
  4. Naršyklės stiliaus SSL patvirtinimas
  5. Automatinis turinio dekodavimas
  6. Pagrindinis / santraukinis autentifikavimas
  7. Elegantiški raktų / vertės slapukai
  8. Automatinis dekompresija
  9. „Unicode“ atsako kūnai
  10. HTTP proxy palaikymas
  11. Įkeliami daugybiniai failai
  12. Srautiniai atsisiuntimai
  13. Ryšio skirtasis laikas
  14. Susikaupę prašymai
Tai yra visos pažangiosios python užklausų bibliotekos funkcijos, leidžiančios pabandyti suprasti, kodėl mes pirmiausia naudojame python užklausas.

Kodėl verta naudoti „Python“ užklausas?

Kodėl reikia naudoti „python“ užklausas? priežastis yra gana paprasta. Naudodamiesi „python“ užklausomis, neprivalote rankiniu būdu pridėti užklausų prie savo URL ir formuoti kodavimo pranešimų duomenų. Tai palengvina mūsų darbą teikiant bet kokios rūšies http užklausas.Dabar, kai esame susipažinę su „python“ užklausomis ir kodėl jas naudojame „Python“, galime pabandyti suprasti, kaip mes įdiegsime užklausas savo projekte ar sistemoje.

Kaip įdiegti „Python“ užklausas?

Montavimo dalis taip pat yra labai lengva. Jei sistemoje turite įdiegtą „pipenv“ sąranką, galite tiesiog paleisti šią komandą terminale.

$ pip įdiegimo užklausos

Tai užklausų biblioteką įdiegs jūsų sistemoje. Yra dar vienas būdas įdiegti užklausas. Jei naudojate „pycharm“, nustatymuose galite įtraukti užklausas į projekto vertėją. Jei naudojatės biblioteka mūsų projekte, ji tarnauja tokiam pat tikslui kaip ir terminalas.Dabar, kai baigiame diegimą, galime pabandyti suprasti, kaip pateiksime užklausas ir skelbsime „Python“.

Kaip pateikti užklausas gauti ir paskelbti?

Gauti užklausą iš esmės naudojamas prašyti duomenų iš serverio. Toliau pateikiama gavimo užklausos sintaksė.
importavimo užklausos res = request.get ('url') #res yra atsakymo objektas čia.
Skelbimo užklausa naudojama pateikti duomenis, kuriuos reikia apdoroti, į serverį. Toliau pateikiama pranešimo apie užklausą sintaksė.
importo užklausų naudingoji apkrova = {'key1': 'value1'} res = request.post ('url', data = naudingoji apkrova)
Dabar, kai žinome, kaip galime pateikti užklausas gauti ir skelbti, pažvelkime, kaip galime perduoti parametrus URL naudodami užklausą gauti.

Parametrų perdavimas URL

Parametrus URL perduoti taip pat paprasta, kaip pateikti užklausą. Toliau pateikiamas pavyzdys, kaip perduoti parametrus URL.
importo užklausų naudingoji apkrova = {'key1': 'value1', 'key2': 'value2'} res = request.get ('url', params = naudingoji apkrova) print (res.url) #tai tai atspausdins URL su parametrais praėjo gauti užklausą.

Būsenos kodas

Mes taip pat galime patikrinti būsenos kodą, šis kodas yra būsenos kodas:





importuoti užklausas res = request.get ('url') spausdinti (res.status_code ())
Jei kodas grąžina 200, tai reiškia, kad klaidos nėra ir užklausa yra gerai. Jei pateiksime neteisingą užklausą, kodas grąžins 404 arba 505 kodą, kuris sukels http klaidą.

Atsakymo turinys

Taip pat galime perskaityti serverio atsakymo turinį. Biblioteka automatiškai iššifruos turinį iš serverio.
importuoti užklausas res = request.get ('url') spausdinti (res.content)

Užklausose taip pat yra įmontuotas „Json“ dekoderis.

kaip įspėti javascript
importuoti užklausas res = request.get ('url') spausdinti (res.json ()) #tai gausite atsakymą json formatu

Kelių dalių failo įkėlimas

Naudojant užklausas, labai lengva įkelti kelių dalių failus.
importo užklausų failai = {'file': open ('failo vardas', 'rb')} res = request.post ('url', failai = failai) spausdinti (res.text)
Norėdami siųsti kelis failus, failų parametre nurodysime kelis failus.

Slapukai ir antraštės

Mes galime peržiūrėti serverio atsakymo antraštes ir slapukus naudodami atsakymo objektą. Toliau pateikiamas kodas, skirtas serverio antraštėms peržiūrėti.
importuoti užklausas res = request.get ('url') spausdinti (res.headers)
Taip pat galime perduoti pasirinktines antraštes į URL. Pažvelkime į kodą.
importo užklausų antraštės = {'key1': 'value1'} res = užklausos.get ('url', antraštės = antraštės) spausdinti (res.headers)
Užklausos nekeičia savo elgesio, pagrįstos pasirinktinėmis antraštėmis. Jie tiesiog perduodami galutiniam prašymui. sausainiai taip pat galima peržiūrėti naudojant atsakymo objektą.
importuoti užklausas # norėdami perduoti savo slapukus, mes galime naudoti slapukų parametrą slapukus = dict (cookies = 'working') res = request.get ('url', cookies = cookies) print (res.text)

Slapukai grąžinami „RequestCookieJar“, kuris veikia kaip žodynas, bet taip pat siūlo išsamesnę sąsają, tinkamą naudoti keliuose domenuose ar keliuose.



Seanso objektas

Sesijos objektas leidžia išsaugoti tam tikrus parametrus visose užklausose.
  • Išlieka slapukai visose užklausose, pateiktose iš seanso egzemplioriaus
  • Naudokite „urllib3“ ryšio sujungimą
  • Didelis našumas
  • Seanso objekte yra visi pagrindinių užklausų API metodai
Toliau pateikiamas kodas, kuris palaiko kai kuriuos slapukus visose užklausose.
s = request.session () s.get ('url') res = s.get ('url') spausdinti (res.text)

Klaidos ir išimtys

Toliau pateikiamos klaidos ir išimtys, iškeltos python užklausoje.
  • Iškilus tinklo problemai, užklausos iškels „ConnectionError“ išimtį.
  • „Response.raise_for_status“) iškels HTTP klaidą, kai būsenos kodas bus nesėkmingas.
  • Jei yra skirtasis laikas, jis sukels „Timeout“ išimtį
  • „TooManyRedirects“ išimtis iškeliama, jei užklausa viršija nustatytą maksimalaus peradresavimų skaičiaus skaičių.
Šiame tinklaraštyje aptarėme python užklausų modulį, kuriame turime įvairias pažangias funkcijas. Aptarėme diegimą ir užklausos gavimas ir paskelbimas pateikimą su atsakymo turiniu ir kitomis užklausų bibliotekos „python“ sąvokomis. „Python“ užklausų modulis yra vienas iš daugybės nepaprastų „out-box“ funkcijų pitono programavimo kalba . Galite pradėti mokymąsi užsiregistravę ir atrasti pitono programavimo kalbos galimybes. Turite klausimų? paminėkite juos komentarų skiltyje, mes susisieksime su jumis.