Mga Kahilingan sa Python: Lahat ng Kailangan Mong Malaman



Dadalhin ka ng blog na ito sa detalye ng mga humiling ng module ng sawa. Magiging pamilyar ka sa mga kahilingan sa GET at POST, mga object ng session, cookies at header.

Humihiling ang Python ng bag halos halos 400,000 na mga pag-download araw-araw. Ang numerong ito ay sapat na maliwanag upang maunawaan ang tungkol sa katanyagan nito . Sa mga nagdaang taon, ang wika ng programa sa python ay naging pinakahihiling na wika ng programa para sa maraming mga developer. Ang mga konsepto at aklatan tulad ng mga kahilingan ay isa sa maraming mga kadahilanan para sa mga developer na lumipat mula sa iba pang mga wika sa pagprograma sa sawa. Sa blog na ito, dadaan kami sa mga sumusunod na paksa:

Ano ang Mga Kahilingan sa Python?

Ang mga kahilingan sa Python ay isinulat ni Kenneth Reitz at lisensyado sa ilalim ng apache 2.0. Ito ay isang human friendly HTTP library tulad ng nabanggit sa opisyal na pahina ng dokumentasyon. Ito ay madaling gamitin at karaniwang ginagamit para sa paggawa ng lahat ng uri ng mga kahilingan sa HTTP. Ang sumusunod ay ilang mga advanced na tampok na kasama ng mga kahilingan:
  1. Panatilihing buhay at koneksyon pooling
  2. Mga pang-internasyonal na domain at url
  3. Mga sesyon na may pagtitiyaga sa cookie
  4. Ang pag-verify sa SSL na istilo ng browser
  5. Awtomatikong pag-decode ng nilalaman
  6. Pangunahin / pagpapatunay ng digest
  7. Eleganteng key / cookies ng halaga
  8. Awtomatikong pag-decompression
  9. Mga katawan ng pagtugon sa Unicode
  10. Suporta ng proxy ng HTTPs
  11. Multipart na mga pag-upload ng file
  12. Mga Pag-download sa Streaming
  13. Mga timeout ng koneksyon
  14. Chunked na mga kahilingan
Ito ang lahat ng mga advanced na tampok ng library ng mga kahilingan sa sawa, hinahayaan na subukang maintindihan kung bakit ginagamit namin ang mga kahilingan sa python sa una.

Bakit Gumagamit ng Mga Kahilingan sa Python?

Pagdating sa bakit gumagamit kami ng mga hiling sa python? ang dahilan ay medyo simple. Habang gumagamit ng mga kahilingan sa sawa, hindi mo kailangang manu-manong idagdag ang mga query sa iyong mga url at form-encode na data ng post. Ginagawa nitong mas madali ang aming trabaho kapag gumagawa ng anumang mga kahilingan sa http.Ngayon na pamilyar kami sa mga kahilingan sa sawa at kung bakit ginagamit namin ang mga ito sa sawa, subukang maunawaan kung paano namin mai-install ang mga kahilingan sa aming proyekto o system.

Paano Mag-install ng Mga Kahilingan sa Python?

Ang bahagi ng pag-install ay napakadali din. Kung mayroon kang naka-install na pipenv setup sa iyong system, maaari mo lamang patakbuhin ang sumusunod na utos sa terminal.

Mga kahilingan sa pag-install ng $ pip

I-install nito ang library ng mga kahilingan sa iyong system. May isa pang diskarte upang mag-install ng mga kahilingan. Kung gumagamit ka ng pycharm, maaari kang magdagdag ng mga kahilingan sa interpreter ng proyekto sa mga setting. Naghahatid ito ng parehong layunin bilang terminal kung sakaling mai-install ang library sa aming proyekto.Ngayon na natapos namin ang pag-install, subukan nating maunawaan kung paano kami makakakuha ng mga kahilingan sa pag-post at pag-post sa sawa.

Paano Gumawa ng Mga Kahilingan sa Kumuha at Mag-post?

Karaniwang ginagamit ang humiling ng kahilingan upang humiling ng data mula sa server. Ang sumusunod ay ang syntax upang gumawa ng isang kahilingan sa pagkuha.
pag-import ng mga kahilingan res = requests.get ('url') #res ay ang tumutugon na object dito.
Ginagamit ang kahilingan sa pag-post upang isumite ang data upang maproseso sa server. Ang sumusunod ay ang syntax upang gumawa ng isang kahilingan sa pag-post.
pag-import ng mga kahilingan sa payload = {'key1': 'halaga1'} res = mga kahilingan.post ('url', data = payload)
Ngayong alam na natin kung paano tayo makakagawa ng makakuha at mag-post ng mga kahilingan, tingnan natin kung paano tayo makakapasa ng mga parameter sa url gamit ang get request.

Pagpasa ng Mga Parameter Sa Isang Url

Ang pagpasa ng mga parameter sa isang url ay kasing simple ng paggawa ng isang kahilingan sa get. Ang sumusunod ay isang halimbawa upang maipasa ang mga parameter sa url.
pag-import ng mga kahilingan sa payload = {'key1': 'halaga1', 'key2': 'halaga2'} res = mga kahilingan.get ('url', params = payload) print (res.url) #Ii-print ang url na may mga parameter dumaan sa get request.

Code ng katayuan

Maaari nating suriin din ang code ng katayuan, ang sumusunod ay ang code upang suriin ang code ng katayuan:





pag-import ng mga kahilingan res = requests.get ('url') print (res.status_code ())
Kung ang code ay nagbabalik ng 200, nangangahulugan ito na walang error at ang kahilingan ay maayos ang lahat. Kung gagawa kami ng hindi magandang kahilingan, ibabalik ng code ang code tulad ng 404 o 505 na magtataas ng isang error sa http.

Nilalaman ng Tugon

Maaari din nating basahin ang mga nilalaman ng tugon ng server. Awtomatikong mai-decode ng library ang nilalaman mula sa server.
pag-import ng mga kahilingan res = requests.get ('url') print (res.content)

Ang mga kahilingan ay mayroon ding built-in na joder decoder.

pag-import ng mga kahilingan res = requests.get ('url') print (res.json ()) # Makukuha nito ang tugon sa isang json format

Pag-upload ng Maramihang Bahagi ng File

Napakadali na mag-upload ng mga file na maraming bahagi gamit ang mga kahilingan.
mag-import ng mga file = {'file': buksan ('filename', 'rb')} res = requests.post ('url', files = files) print (res.text)
Para sa pagpapadala ng maraming mga file ay tutukuyin namin ang maraming mga file sa parameter ng mga file.

Cookies At Header

Maaari naming matingnan ang mga header ng pagtugon at cookies ng server gamit ang object ng tugon. Ang sumusunod ay ang code upang matingnan ang mga header ng server.
pag-import ng mga kahilingan res = requests.get ('url') print (res.headers)
Maaari naming ipasa ang mga pasadyang header sa url din. Hayaang tingnan ang code.
mag-import ng mga hiling header = {'key1': 'value1'} res = requests.get ('url', headers = header) print (res.headers)
Hindi binabago ng mga kahilingan ang pag-uugali nito batay sa mga pasadyang header. Pasado lamang sila sa pangwakas na kahilingan. cookies maaari ring matingnan gamit ang object ng tugon.
mag-import ng mga kahilingan #para ipasa ang aming sariling cookies maaari naming magamit ang mga parameter ng cookies cookies = dict (cookies = 'working') res = requests.get ('url', cookies = cookies) print (res.text)

Ang cookies ay ibinalik sa isang RequestCookieJar, na gumaganap tulad ng isang diksyunaryo ngunit nag-aalok din ng mas kumpletong interface, na angkop para sa paggamit sa maraming mga domain o mga landas.



Bagay sa Sisyon

Pinapayagan ka ng object ng session na magpatuloy sa ilang mga parameter sa mga kahilingan.
  • Nagpapatuloy sa cookies sa lahat ng mga kahilingang ginawa mula sa session ng session
  • Gumamit ng urllib3 connection pooling
  • Makabuluhang increse ng pagganap
  • Ang isang bagay sa session ay mayroong lahat ng mga pamamaraan ng pangunahing mga kahilingan sa API
Ang sumusunod ay ang code upang magpatuloy ang ilang mga cookies sa mga kahilingan.
s = requests.session () s.get ('url') res = s.get ('url') print (res.text)

Mga Error At Exception

Ang mga sumusunod ay ang mga error at pagbubukod na naitaas sa isang kahilingan sa sawa.
  • Sa kaganapan ng problema sa network, ang mga kahilingan ay magtataas ng isang pagbubukod sa ConnectionError.
  • Ang Response.raise_for_status () ay magtataas ng isang error sa HTTP kapag mayroong isang hindi matagumpay na code ng katayuan.
  • Kung mayroong isang pag-timeout, tataasan nito ang isang pagbubukod sa Timeout
  • Ang pagbubukod ng TooManyRedirects ay itataas kung ang kahilingan ay lumampas sa na-configure na bilang ng maximum na bilang ng mga pag-redirect.
Sa blog na ito tinalakay namin ang module ng mga kahilingan sa sawa kung saan mayroon kaming iba't ibang mga advanced na tampok. Tinalakay namin ang pag-install at paggawa ng isang kahilingan sa pagkuha at pag-post kasama ang nilalaman ng tugon at iba pang mga konsepto sa library ng mga kahilingan sa sawa. Ang module ng mga hiling sa Python ay isa sa maraming pambihirang mga tampok na kahon ng wika ng programa sa python . Maaari mong simulan ang iyong pag-aaral sa pamamagitan ng pag-enrol at tuklasin ang mga posibilidad ng wika ng programa sa python. Mayroon bang mga query? banggitin ang mga ito sa seksyon ng mga komento, babalikan ka namin sa iyo.