大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
# 导入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并不能把我自定义的方法对应起来。