一、初始化项目(推荐方案一)
方案一
方案二
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')