我正在为一家餐馆制作一个网站,他们想要展示他们的Yelp评论。我配置并可以使用Yelp API检索数据。我必须查询两件事才能得到我需要的东西。总而言之,这意味着该页面需要10-15秒才能加载,而且我不想在每次有人想要查看该页面时查询Yelp API。
yelp_api = YelpAPI('secretkey1', 'secretkey2')
business_results = yelp_api.business_query(id='secretbuisness', location='secretplace')
reviews_results = yelp_api.reviews_query(id='secretbuisness', location='secretplace')
return render(request, 'reviews.html', {'reviews_results': reviews_results, 'business_results': business_results})
有没有办法让它可以让Yelp API数据与页面请求分开并存储在可以使用的地方,可能每5-10分钟更新一次?
答案 0 :(得分:0)
当然,您可以使用后台任务来执行此操作。
选择一个后台任务django应用程序:
为结果制作模型以将其存储在数据库中
或者你可以在html中使用ajax(javascript)异步执行此操作。 因此,在您要显示结果的页面上,您可以使用javascript向rest api of yelp执行ajax请求,并使用handlebars或其他javascript呈现引擎呈现整个数据。如果你混合使用javascript模板引擎和django模板语法,请注意,因为django可能会呈现javascript模板。因此,这是解决方案:How to escape {{ or }} in django template?