\"\"

项目名/settings.py(项目配置,配置认证使用的模型类):

# django认证系统使用的模型类 (默认使用数据库中的auth_user表)
AUTH_USER_MODEL=\'user.User\'  # 应用名.模型类名
# 注意: AUTH_USER_MODEL配置参数要在第一次迁移数据库之前配置,否则可能django的认证系统工作不正常

应用名/models.py(模型,定义认证系统使用的模型类):

from django.db import models
from django.contrib.auth.models import AbstractUser

# 认证系统使用的模型类,继承AbstractUser类
class User(AbstractUser):
    \'\'\'用户模型类\'\'\'

    class  :
        db_table = \'df_user\'  # 对应的数据库表名
        verbose_name = \'用户\'   # 后台Admin站点,表名的显示
        verbose_name_plural = verbose_name  # 后台Admin站点,表名复数的显示

应用名/views.py(视图,用户注册、登录):

from django.shortcuts import render
from django.http import HttpResponse
from user.models import User
from django.contrib.auth import authenticate, login


# 视图函数。 注册用户
def register(request):

    # 。。。
    
    # 校验用户名是否重复
    try:
        user = User. s.get(username=\"用户名\")  # get能且仅能返回一条数据。
        # 。。。
    except User.DoesNotExist:
        # 用户名不存在
        # 。。。


    # 注册用户。 create_user()方法,创建认证用户。
    user = User. s.create_user(\"用户名\", \"邮箱\", \"明文密码\")   # 密码会自动进行加密。
    user.is_active = 0  # 手动设置用户的其他属性
    user.save()   # 保存到数据库。

    return render(request, \'register.html\')


# 视图函数。 用户登录(身份认证)
def doLogin(request):

    # 业务处理:登录校验
    user = authenticate(username=\"用户名\", password=\"明文密码\")
    if user is not None:
        # 用户名密码正确
        login(request, user)   # 登录,将用户信息写入session中。
        return HttpResponse(\'登录成功\')
    else:
        # 用户名或密码错误
        return render(request, \'login.html\', {\'errmsg\':\'用户名或密码错误\'})

 

 

收藏 打印