因此,我有一个Django(1.8.9)函数视图,如下所示:
@api_view(['GET')]
def fruit_ranker(request):
"""
This view is responsible for generating the list of top 5
fruits based on sales
"""
****busines logic***
****busines logic***
****busines logic***
****busines logic***
....
....
然后,这个特定的视图被绑定到网址.py因此,http://127.0.0.1:8000/app_name/fruit-ranker给出了前5个水果的JSON输出。按预期工作。在
现在,我需要对前5种蔬菜执行相同的操作,并且它需要一个单独的URL,比如http://127.0.0.1:8000/app_name/veggie-ranker。因此,我创建了以下视图来绑定到这个URL,如下所示:
^{pr2}$问题是业务逻辑是完全相同的,尽管对于SQL中的select语句,第一种情况下,我选择水果,在第二种情况下,我选择蔬菜。怎么吃我是否可以重用第一个视图中的所有现有代码,而不必再次重写它,也不必适应小的SQL更改?我是否可以将第一个视图作为装饰器添加到第二个视图中,这样我就可以抽象出所有代码,并允许我灵活地更改SL?在
如果创建通用ranker,例如:
那么你的实际观点是:
^{pr2}$但是,我想知道您为什么依赖函数视图。如果你快速地看一下Class based views,你会发现你可以如此高效地完成很多事情。在
虽然最好将两个视图分开(以防将来您想更改一个视图而不更改另一个视图),但是如果您希望使用一个视图,则可以这样做。在
或者您可以:
^{pr2}$相关问题 更多 >
编程相关推荐