- Какво е заявките на Python?
- Защо да използвам заявки на Python?
- Как да инсталирам заявки за Python?
- Изпращане на заявки за получаване и публикуване
- Предаване на параметри в URL
- Код на състоянието
- Съдържание на отговора
- Качване на файл от няколко части
- „Бисквитки“ и заглавки
- Обект на сесията
- Грешки и изключения
Какво е заявките на Python?
Заявките на Python са написани от Kenneth Reitz и лицензирани под apache 2.0. Това е HTTP библиотека, удобна за хората, както е споменато на официалната страница с документация. Той е лесен за използване и основно се използва за извършване на всякакви HTTP заявки. По-долу са дадени няколко разширени функции, с които се подават заявките:- Поддържайте живи и обединяване на връзки
- Международни домейни и URL адреси
- Сесии с постоянство на бисквитки
- SSL проверка в стил браузър
- Автоматично декодиране на съдържание
- Основно / дайджест удостоверяване
- Елегантни бисквитки с ключ / стойност
- Автоматична декомпресия
- Тела за отговор на Unicode
- Поддръжка на HTTP прокси
- Качване на файлове от няколко части
- Изтегляне на поточно предаване
- Времето за изчакване на връзката
- Накъсани заявки
Защо да използвам заявки на Python?
Когато става въпрос за това защо използваме заявки на python? причината е доста проста. Докато използвате заявки на python, не е нужно ръчно да добавяте заявките към вашите URL адреси и да кодирате във формуляр данни за публикации. Това улеснява работата ни, когато отправяме http заявки от всякакъв вид.Сега, когато сме запознати с заявките на python и защо ги използваме в python, нека се опитаме да разберем как ще инсталираме заявки в нашия проект или система.Как да инсталирам заявки за Python?
Инсталационната част също е много лесна. Ако имате инсталирана настройка на pipenv на вашата система, можете просто да изпълните следната команда в терминала.$ pip заявки за инсталиране
конвертира двойно в intТова ще инсталира библиотеката за заявки във вашата система. Има още един подход за инсталиране на заявки. Ако използвате pycharm, можете да добавите заявки към интерпретатора на проекта в настройките. Той служи на същата цел като терминала в случай на инсталиране на библиотеката по нашия проект.След като приключихме с инсталацията, нека се опитаме да разберем как ще направим заявки за получаване и публикуване в python.
Как да направите заявки за получаване и публикуване?
Заявката за получаване се използва основно за искане на данните от сървъра. Следва синтаксисът за отправяне на заявка за получаване.заявки за импортиране res = request.get ('url') #res е обектът на отговор тук.Искане за публикуване се използва за изпращане на данните, които ще бъдат обработени на сървъра. Следва синтаксисът за отправяне на заявка за публикация.
искане за импортиране полезен товар = {'key1': 'value1'} res = request.post ('url', data = payload)Сега, когато знаем как можем да правим заявки за получаване и публикуване, нека да разгледаме как можем да предаваме параметри на URL адреса, използвайки заявката за получаване.
Предаване на параметри в URL адрес
Предаването на параметри в url е толкова просто, колкото отправянето на заявка за получаване. Следва пример за предаване на параметри към url.искане за импортиране payload = {'key1': 'value1', 'key2': 'value2'} res = request.get ('url', params = payload) print (res.url) #this ще отпечата URL адреса с параметрите премина през заявката за получаване.
Код на състоянието
Можем да проверим и кода на състоянието, след това е кодът за проверка на кода на състоянието:
заявки за внос res = request.get ('url') print (res.status_code ())Ако кодът върне 200, това означава, че няма грешка и заявката е добре. Ако направим лоша заявка, кодът ще върне код като 404 или 505, което ще доведе до http грешка.
Съдържание на отговора
Също така можем да прочетем съдържанието на отговора на сървъра. Библиотеката автоматично ще декодира съдържанието от сървъра.заявки за внос res = request.get ('url') print (res.content)
Requests също има вграден json декодер.
заявки за внос res = request.get ('url') print (res.json ()) #this ще получи отговора във формат json
Качване на файл от няколко части
Качването на многокомпонентни файлове с помощта на заявки е много лесно.импортиране на файлове с искания = {'файл': отворен ('име на файл', 'rb')} res = request.post ('url', files = files) print (res.text)За изпращане на множество файлове ще посочим множество файлове в параметъра files.
„Бисквитки“ и заглавки
Можем да видим заглавките на сървъра за отговор и бисквитките, като използваме обекта за отговор. Следва кодът за преглед на хедърите на сървъра.заявки за внос res = request.get ('url') print (res.headers)Можем да предаваме персонализирани заглавки и на URL адреса. Нека да разгледаме кода.
импортиране на заглавки на заявки = {'key1': 'value1'} res = request.get ('url', headers = headers) print (res.headers)Заявки не променя поведението си въз основа на персонализирани заглавки. Те просто се предават на крайната заявка. бисквитки може да се разглежда и с помощта на обекта за отговор.
заявки за импортиране # за предаване на нашите собствени бисквитки можем да използваме параметъра бисквитки бисквитки = dict (бисквитки = 'работещи') res = request.get ('url', бисквитки = бисквитки) print (res.text)
Бисквитките се връщат в RequestCookieJar, който действа като речник, но предлага и по-пълен интерфейс, подходящ за използване в множество домейни или пътища.
Обект на сесията
Обектът на сесията ви позволява да запазите определени параметри в заявките.- Запазва бисквитките във всички заявки, направени от екземпляра на сесията
- Използвайте пул за връзка urllib3
- Значително увеличение на производителността
- Обектът на сесията има всички методи на API на основните заявки
s = заявки.session () s.get ('url') res = s.get ('url') print (res.text)
Грешки и изключения
Следват грешките и изключенията, възникнали в заявка на python.- В случай на мрежов проблем, заявките ще предизвикат изключение ConnectionError.
- Response.raise_for_status () ще доведе до HTTP грешка, когато има неуспешен код на състоянието.
- Ако има време за изчакване, това ще доведе до изключение за изчакване
- Изключението TooManyRedirects се извежда, ако заявката надвишава конфигурирания брой на максималния брой пренасочвания.