Реализовать Github API в Python - PullRequest
0 голосов
/ 23 мая 2018

Я работаю над проектом с использованием Python (3.6), в котором мне нужно реализовать GitHub API.Я попытался с помощью JSON apis как:

от views.py:

class GhNavigator(CreateView):
    def get(self, request, *args, **kwargs):
        term = request.GET.get('search_term')
        username = 'arycloud'
        token = 'API_TOKEN'
        login = requests.get('https://api.github.com/search/repositories?q=' + term, auth=(username, token))
        print(login)
        return render(request, 'navigator/template.html', {'login': login})

, но он просто возвращает status 200, я хочу получить списокрепозитории для term, которые передаются пользователем.

Как мне этого добиться?

Помогите, пожалуйста!

Заранее спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

Библиотека requests вернет объект Response, если вы выполните .get(..), .post(..) или что-то подобное.Поскольку ответы могут быть очень большими (сотни строк), по умолчанию содержимое не печатается.

Но разработчики добавили к нему несколько удобных функций, например, для преобразования ответа в виде объекта JSON.У объекта ответа есть функция .json(), которая предназначена для интерпретации содержимого в виде строки JSON и возврата его аналога Vanilla Python.

Таким образом, вы можете получить доступ к ответу (и отобразить его так, как хотите), выполниввызывая .json(..) для него:

class GhNavigator(CreateView):
    def get(self, request, *args, **kwargs):
        term = request.GET.get('search_term')
        username = 'arycloud'
        token = 'API_TOKEN'
        <b>response</b> = requests.get('https://api.github.com/search/repositories?q=' + term, auth=(username, token))
        <b>login = response.json()</b>  # obtain the payload as JSON object
        print(login)
        return render(request, 'navigator/template.html', {'login': login})

Теперь, конечно, вы должны интерпретировать этот объект в соответствии с вашей конкретной «бизнес-логикой» и отобразить страницу, которая, по вашему мнению, содержит требуемую информацию.

...