我查看了Django内置的Auth应用程序并注意到许多视图分为:
password_reset
,
password_reset_confirm
,
password_reset_done
,
password_reset_complete
这里每个简单的动作都有不同的视图。是应该像这样编写所有应用程序,还是一个视图可以管理更多URL?
答案 0 :(得分:0)
经验法则是不同的URL应由不同的视图处理。
在Django 1.3中引入class-based views之前,如果你的视图函数试图处理很多情况,这可能会导致混乱。但现在您可以创建基于类的视图,这些视图允许您子类化现有视图并重用这些视图的行为。
例如(对于有多个游戏的网站)。
class GameView(View):
def game_method(self):
# compute things here
return data
class PuzzleGameView(GameView):
def get(self, request, *args, **kwargs):
data = self.game_method()
# do other things here
return HttpResponse("")
class SudokuGameView(PuzzleGameView):
pass
class ActionGameView(GameView):
pass
GameView
中定义的方法可以在子类中调用和重用。