【项目django-后端03】登录

 

目录

 

 

一。关系用户系统:

一。自定义User模型:

1,创建文件app>xfzauth>models.py(用户名的逻辑)

2,执行数据库(执行)

3,创建视图views.py

4,创建forms.py


 


 

 

一。关系用户系统:

  1. 使用Django内置User系统
  2. 需要重新定制
  3. 前后台使用同一个User系统

一。自定义User模型:

  1. 创建一个用户,管理用户信息
  2. 全部重写,继承自AbstractBaseUser
  3. 定义UserManager
  4. 设置AUTH_USER_MODEL
  5. 映射到数据库中

-------------------------------------------

1,创建文件app>xfzauth>models.py(用户名的逻辑)

#encoding: utf-8

from django.contrib.auth.models import AbstractBaseUser,PermissionsMixin,BaseUserManager
from shortuuidfield import ShortUUIDField
from django.db import models


class UserManager(BaseUserManager):
    def _create_user(self,telephone,username,password,**kwargs):
        if not telephone:
            raise ValueError('请传入手机号码!')
        if not username:
            raise ValueError('请传入用户名!')
        if not password:
            raise ValueError('请传入密码!')

        user = self.model(telephone=telephone,username=username,**kwargs)
        user.set_password(password)
        user.save()
        return user

    def create_user(self,telephone,username,password,**kwargs):
        kwargs['is_superuser'] = False
        return self._create_user(telephone,username,password,**kwargs)

    def create_superuser(self,telephone,username,password,**kwargs):
        kwargs['is_superuser'] = True
        kwargs['is_staff'] = True
        return self._create_user(telephone,username,password,**kwargs)


class User(AbstractBaseUser,PermissionsMixin):
    # 我们不使用默认的自增长的主键
    # id:100,101,102,103
    # uuid/shortuuid
    # Shortuuidfield:pip install django-shortuuidfield
    uid = ShortUUIDField(primary_key=True)
    telephone = models.CharField(max_length=11,unique=True)
    email = models.EmailField(unique=True,null=True)
    username = models.CharField(max_length=100)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    data_joined = models.DateTimeField(auto_now_add=True)

    USERNAME_FIELD = 'telephone'
    # telephone,username,password
    REQUIRED_FIELDS = ['username']
    EMAIL_FIELD = 'email'

    objects = UserManager()

    def get_full_name(self):
        return self.username

    def get_short_name(self):
        return self.username

2,执行数据库(执行)

migrate

3,创建视图views.py

4,创建forms.py

5,创建xfz>>utils(存放工具)

5.1创建utils》》restful.py(返回)

你可能感兴趣的:(pyhon-django)