Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
需要邮箱、手机号、用户名登录
可以自定义用户验证
Django 身份验证,ModelBackend 是 Django 使用的默认身份验证后端,由用户标识符和密码组成的凭据进行验证。在 Django 默认的用户模型,用户标识符是用户名,而自定义用户模型,由USERNAME_FIELD 指定的字段。
再来看下第一季都有哪些可以回顾和用得上的小技能
自定义用户验证
from django.db.models import Q
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
# Create your views here.
User = get_user_model()
class CustomBackend(ModelBackend):
"""
自定义用户验证
"""
def authenticate(self, request, username=None, password=None, **kwargs):
if username is None:
username = kwargs.get(User.USERNAME_FIELD)
try:
# 实现用户名、手机号、邮箱登录
user = User.objects.get(Q(username=username) | Q(mobile=username) | Q(email=username))
if user.check_password(password) and self.user_can_authenticate(user) and user.is_active:
# 用户登录
return user
except User.DoesNotExist:
return None
Django 在 settings.py 中用 “AUTHENTICATION_BACKENDS” 列表来测试认证。当调用 django.contrib.auth.authenticate() 时,Django 将尝试所有的认证后端。若第一个认证方法失败了,Django 将会继续尝试第二个,直到所有的都被尝试过。
默认情况下,AUTHENTICATION_BACKENDS 的设置为 django.contrib.auth.backends.ModelBackend,这是Django检查用户数据的基本认证方案。
自定义用户验证需要在 settings.py 文件的 AUTHENTICATION_BACKENDS 配置