Я пытаюсь изучить django, поэтому пока у меня есть текущее решение, я не уверен, следует ли ему следовать лучшим практикам в django. Я хотел бы отображать информацию из веб-api на моем веб-сайте. Скажем, api url выглядит следующим образом:
http://api.example.com/books?author=edwards&year=2009
Thsis вернет список книг Эдвардса, написанных в 2009 году. Вернулся в следующем формате:
{'results':
[
{
'title':'Book 1',
'Author':'Edwards Man',
'Year':2009
},
{
'title':'Book 2',
'Author':'Edwards Man',
'Year':2009}
]
}
В настоящее время я использую API в моем файле представлений следующим образом:
class BooksPage(generic.TemplateView):
def get(self,request):
r = requests.get('http://api.example.com/books?author=edwards&year=2009')
books = r.json()
books_list = {'books':books['results']}
return render(request,'books.html',books_list)
Обычно мы извлекаем данные из базы данных в файле models.py, но я не уверен, следует ли мне захватывать эти данные API в models.py или views.py. Если это должно быть в models.py, может ли кто-нибудь привести пример того, как это сделать? Я написал вышеприведенный пример для stackoverflow, поэтому любые ошибки являются результатом записи здесь.