django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题
+关注继续查看

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

方案一

image

方案二

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下的模型类

image

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的数据库

image

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;'}
    }
}

配置默认用户模型

image

AUTH_USER_MODEL = "users.User"  # 设置默认的用户模型app+模型类 

五、数据迁移(把模型类转为数据库的表字段)

python manage.py makemigrations # 创建数据库迁移文件

python manage.py migrate # 根据数据库迁移文件生成对应SQL语句并执行

image

这个就是数据库迁移文件

image

用户模型重写结果

image

六、整体结构和介绍

image

七、解决用户模型重写后无法创建超级用户的问题

解决问题参考文章: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')

image

image



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
关系型数据库 MySQL 数据库
django配置mysql
django配置mysql
15 0
|
2月前
|
小程序 应用服务中间件 网络安全
Django 配置SSL后重定向次数过多
Django 配置SSL后重定向次数过多。
38 4
|
3月前
|
JSON 数据库 数据安全/隐私保护
Django系列:Django应用(app)的创建与配置
应用是Django项目的组成部分,一个Django项目可以分为多个应用,本文讲解Django应用(app)的创建,并实际完成一个简单应用的配置和开发。
47 0
|
3月前
|
前端开发 JavaScript 数据库
Django系列:Django的项目结构与配置解析
本文讲解Django的项目结构与配置
64 0
|
3月前
|
关系型数据库 MySQL 数据库
Django的简介安装与配置及两大设计模式2
Django的简介安装与配置及两大设计模式2
26 0
|
4月前
|
JavaScript 前端开发 应用服务中间件
Linux--部署Django+DRF+vue项目
Linux--部署Django+DRF+vue项目
|
7月前
|
Python
django drf 常用命令和常见问题
django drf 常用命令和常见问题
|
7月前
|
数据库 Python
django drf 实现只有超级用户才能注册账号(涉及自定义权限permissions,获取token信息解析token信息)
django drf 实现只有超级用户才能注册账号(涉及自定义权限permissions,获取token信息解析token信息)
|
7月前
|
API Python
django drf基于rest_framework_simplejwt实现登录获取token、检验token,token使用
django drf基于rest_framework_simplejwt实现登录获取token、检验token,token使用
|
7月前
|
JSON 数据格式 Python
django drf 案例--实现url编码和json和dict格式转化小工具(涉及定义模型类,序列化器,类视图,路由),接口测试
django drf 案例--实现url编码和json和dict格式转化小工具(涉及定义模型类,序列化器,类视图,路由),接口测试
推荐文章
更多