我正在努力学习django,所以虽然我有一个当前的解决方案,但我不确定它是否遵循django的最佳实践.我想在我的网站上显示来自web api的信息.假设api url如下所示:
http://api.example.com/books?author=edwards&year=2009
Thsis将归还一份爱德华兹2009年写的书的 list .以以下格式返回:
{'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)
通常,我们从数据库的mods.py文件中获取数据,但我不确定是否应该在mods.py或views.py中获取此API数据.如果它应该在mods.py中,有人能提供一个如何做到这一点的示例吗?我专门为stackoverflow编写了上面的示例,所以任何bug都纯粹是在这里编写它的结果.