1. CBV(class base view) FBV(function base view) -- 两种写view的逻辑 - 通过写类或者函数的方式来完成view的定义
CBV 有利于代码的重用, 可以继承
下面我们介绍如何使用CBV:
from django.shortcuts import render
from django.views.generic.base import View
from django.contrib.auth import authenticate, login
from django.http import HttpResponseRedirect
from django.urls import reverse
# 定义用户登录功能的类
class LoginView(View):
# 需要定义get 和post方法
def get(self, request, *args, **kwargs):
return render(request, 'login.html')
def post(self, request, *args, **kwargs):
# 处理用户输入的用户名和密码进行登录
user_name = request.POST.get('username', '') # get中的名字是对应元素的name,可以在网页中查看
password = request.POST.get('password', '')
# 用于通过用户名和密码查询用户是否存在
user = authenticate(username=user_name, password=password)
# 生成UserProfile类对象
# ===