Использование внешнего API в Django - PullRequest
0 голосов
/ 14 апреля 2020

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

service.py

def get_data(title, url, description, body, datePublished):
  url = 'https://contextualwebsearch-websearch-v1.p.rapidapi.com/api/Search/WebSearchAPI'
    params = {"autoCorrect": "true", "pageNumber": "1", "pageSize": "10", "q": "police", "safeSearch": "true" }
    r = requests.get(url, params=params)
    data = r.json()
    article_data = {'data': data['value']}
    return article_data

Затем я показываю его на views.py

...
import service

class IndexData(TemplateView):
    def get(self, request):
        article_data = service.get_data.all()
        return render(request, 'pages/home.html', article_data)

но я получаю ModuleNotFoundError: No module named 'service'

Я что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Ответил на мою собственную проблему с помощью Святого Петра на канале разногласий freeCodeCamp.

Очевидно, в cookiecutter- django, вам нужно перейти от проекта к приложению к представлению, прежде чем вы сможете импортировать как то так:

from project_name.app_name import services

Ура

0 голосов
/ 14 апреля 2020

Является ли основная папка пакетом python? Содержит ли он файл init .py? Если нет, попробуйте добавить его и повторить попытку - если он выдаст вам ошибки, пожалуйста, поделитесь представлением нанятого файла (даже очищенным), чтобы получить больше информации

PS: если вы добавляете файл инициализации, обязательно отредактируйте все остальные файлы, которые вызывают ссылку на это имя, например "main_folder.sub_file", становятся просто "sub_file"

...