drf 初始化配置
- 一、初始化项目(推荐方案一)
- 二、创建app
- 三、重写用户模型
- 四、配置
- 五、数据迁移(把模型类转为数据库的表字段)
- 六、整体结构和介绍
- 七、解决用户模型重写后无法创建超级用户的问题
一、初始化项目(推荐方案一)
方案一

方案二
django-admin startproject 项目名
二、创建app
先在根目录下创建apps包用来存放所有的app,可以在apps目录下创建app或者在根目录下创建后移到apps下面
创建app命令 :app django-admin startapp app名
三、重写用户模型
from django.db import modelsfrom django.contrib.auth.models import AbstractUserclass 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')


















