Django应该查看多少个动作?

时间:2012-04-05 08:27:14

标签: django-views

我查看了Django内置的Auth应用程序并注意到许多视图分为:

password_resetpassword_reset_confirmpassword_reset_donepassword_reset_complete

这里每个简单的动作都有不同的视图。是应该像这样编写所有应用程序,还是一个视图可以管理更多URL?

1 个答案:

答案 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中定义的方法可以在子类中调用和重用。