django中的类视图

# 原创,转载请留言联系

  当我们在开发一个注册模块时。浏览器会通过get请求让注册表单弹出来,然后用户输完注册信息后,通过post请求向服务端提交信息。这时候我们后端有两个视图函数,一个处理get请求,一个处理post请求。两个视图函数都是不同的名字。

  但是随着开发的进行。当你想要找到注册模块的这两个视图,太麻烦了。如果这两个视图函数能放在一起,归成一个类,作为注册模块的类。这样日后的维护将会方便很多。这时候,django的类视图就能实现这个功能了。

1.对比

在没有类视图前,视图是这样的:

def get_register_page(request):
    return render(request,"注册页面.html")

def post_register_page(request):
    # 处理请求,把信息写进数据库
    return HttpResponse("注册成功")

有了django的类视图,视图是这样的:

class register(View):
    def get(self,request):
        return render(request,"register.html")

    def post(self,request):
        title = request.POST.get("name")
        content = request.POST.get("password")
        return HttpResponse("注册成功")

别漏了要在项目的urls设置:

url(r'^register$',views.register.as_view())

注意,as_view()是用来分发请求方法的。可以把同一个页面的不同请求方法分发给不同的视图来执行。

原文地址:https://www.cnblogs.com/chichung/p/9886655.html