python开发笔记

1、django基类View的as_view方法

# 导入View基类
from django.views.generic.base import View
# 导入模版渲染函数
from django.shortcuts import render

# 这个是用户登录的验证类
class LoginView(View):
    """登录验证"""
    # get方式获login页面
    def get(self, request):

        return render(request, 'login.html', {})

    # 用户提交表单,返回主页
    def post(self, request):
        """提交表单"""
        return render(request, 'index.html', {})

urls中,导入LoginView,调用.as_view方法
url(r'^login/$', LoginView.as_view(), name='login')

当类视图调用as_view方法时,会把请求时的request方法自动对应到相应的类方法上,比如request的get方法对应到类视图的get方法。
as_view仅仅能自动对应get和post(具体的request方法在类属性当中有个列表:http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'])等方法,如果我在类视图定义了自己的方法,那as_view并不能把我自定义的方法对应起来。

网站题目:python开发笔记
本文URL:http://ybzwz.com/article/jsgcge.html