api – How do I use basic HTTP authentication with the python Requests library? – Stack Overflow

Python request with authentication (access_token)

A lot of good answers already, but I didn’t see this option yet:

If you’re using requests, you could also specify a custom authentication class, similar to HTTPBasicAuth. For example:

from requests.auth import AuthBase


class TokenAuth(AuthBase):
    def __init__(self, token, auth_scheme='Bearer'):
        self.token = token
        self.auth_scheme = auth_scheme

    def __call__(self, request):
        request.headers['Authorization'] = f'{self.auth_scheme} {self.token}'
        return request

This could be used as follows (using the custom auth_scheme from the example):

response = requests.get(
    url='https://example.com', 
    auth=TokenAuth(token='abcde', auth_scheme='access_token'),
)

This may look like a more complicated way to set the Request.headers attribute, but it can be advantageous if you want to support multiple types of authentication. Note this allows us to use the auth argument instead of the headers argument.

Авторизуемся на сайте

В этом примере будем использовать сайт, который нам также потребуется в следующем примере. Для начала зарегистрируемся на сайте WorldWeatherOnline. После удачной регистрации на сайте в личном кабинете вы увидите API KEY, который потребуется для следующего примера.

Для чего и где мы можем применять requests?

Как было отмечено выше, библиотека позволяет нам легко и с минимальным количеством кода взаимодействовать с веб-приложениями. Это необходимо нам для решения любых задач, связанных с передачей информации от пользователя к серверу и обратно. Но, чтобы что-то хорошо понять, необходимо закрепить теоретические знания практикой, поэтому перейдём от слов к делу.

Примеры использования библиотеки requests

Для работы с примерами мы будем использовать два способа: работа в командной строке и написание скриптов в .py-файлах для их дальнейшего запуска.

Я показываю использование командной строки, так как это полезный навык, который пригодится в дальнейшем, когда надо будет быстро что-то проверить.

Похожее:  A guide to authentication in GraphQL - Apollo GraphQL Blog

Для начала, поскольку библиотека является внешней, нам необходимо её установить. Делается это очень просто в командной строке:

$ pip install requests 

Продолжим использовать консоль. После установки в нашем расположении (у меня это диск D) введем команду:

D:> python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2022, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Теперь можем проверить установку библиотеки произведя импорт:

>>> import requests 

Скачаем изображение с сайта

В этом примере мы будем применять всё тот же запрос GET, но, в отличие от предыдущего, мы будем работать с содержимым ответа.

Узнаем погоду в москве

В этом примере мы будем использовать API KEY с сайта WorldWeatherOnline, на котором мы зарегистрировались в прошлом примере. В разделе документации на сайте WorldWeatherOnline приведено подробное описание параметров.

Теперь уже с использованием вашей любимой IDE напишем скрипт, который будет принимать в качестве аргумента из командной строки город, а возвращать значение температуры.

Создадим файл и назовём его weather.py. Запишем в него:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *