django render template

最近在使用django 开发一个网站,views 在渲染模板的时候,总是有很多数据要传递给模板,使得最后的return 语句相当难看,没有什么易读性。
return render_to_response(
'test.html',
{
'test1': test1,
'test2': test2,
'test3': test3,
'test4': test4,
'test5': test5,
'test6': test6,
'test7': test7,
'test8': test8,
'test9': test9,
'test10': test10,
'test11': test11,
'test12': test12,
'test13': test13,
'test14': test14,
'test15': test15,
'test16': test16,
'test17': test17,
'test18': test18,
}
) 请问有什么优雅的方式可以传递较多的数据给模板。

阅读 5.9k
4 个回答

懒一点的直接用
return render(request, 'test.html', locals())
曾经profile过的人表示,什么模板渲染效率(说渲染引擎会deepcopy这个kwargs的人是根本没看过源代码!)、时间的,只要模板不是过多include,造成template nodes特别多,就基本上不够数据库处理的零头。

把这么多数据放在一个 dict 里不就完了么。

 return render_to_response('test.html', dict_a)

这样写不就完了么。

return render_to_response('test.html',{'test1': test1,'test2': test2,'test3': test3,'test4': test4,'test5': test5,'test6': test6,'test7': test7,'test8': test8,'test9': test9,'test10': test10,'test11': test11,'test12': test12,'test13': test13,'test14': test14,'test15': test15,'test16': test16,'test17': test17,'test18': test18,}) 
新手上路,请多包涵

class testData():
t1 = test1
t2 = test2
t3 = test3
.....
然后传一个testData的实例过去就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题