一、初始化项目(推荐方案一)
方案一

方案二
django-admin startproject 项目名
二、创建app
先在根目录下创建apps包用来存放所有的app,可以在apps目录下创建app或者在根目录下创建后移到apps下面
创建app命令 :app django-admin startapp app名
三、重写用户模型
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):# 集成重写用户模型,新增一个手机号字段
mobile = models.CharField(max_length=11,unique=True,verbose_name='手机号')
def __str__(self):
return self.username
四、配置
配置跨域访问、app
注意:app创建后未配置的话迁移数据库模型会无法找到该app下的模型类

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',#注册drf 标记
'corsheaders', #后端解决跨域问题
'apps.users', #添加app
]
配置mysql
注意:mysql的数据库需要提前建立也就是NAME需要先创建一个名字为gadget的数据库

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'gadget',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '101.xxxxxxx',
'PORT': '3306',
'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'}
}
}
配置默认用户模型

AUTH_USER_MODEL = "users.User" # 设置默认的用户模型app+模型类
五、数据迁移(把模型类转为数据库的表字段)
python manage.py makemigrations # 创建数据库迁移文件
python manage.py migrate # 根据数据库迁移文件生成对应SQL语句并执行

这个就是数据库迁移文件

用户模型重写结果

六、整体结构和介绍

七、解决用户模型重写后无法创建超级用户的问题
解决问题参考文章:https://www.cnblogs.com/yy3b2007com/p/7599820.html
进入django-shell模式 python manage.py shell
导入自己重写的用户模型创建超级用户,虽然报错但是确实创建成功了,可以登录admin后台,数据库也写入成功
# from apps.users.models import User
# user=User.objects.create_superuser('lly','emailname@demon.com','123456')

