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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题

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

方案一

方案二

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')



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
229 1
|
2月前
|
SQL 关系型数据库 MySQL
排除通过IP访问MySQL时出现的连接错误问题
以上步骤涵盖了大多数遇到远程连接 MySQL 数据库时出现故障情形下所需采取措施,在执行每个步骤后都应该重新尝试建立链接以验证是否已经解决问题,在多数情形下按照以上顺序执行将能够有效地排除并修复大多数基本链接相关故障。
337 3
|
4月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
259 1
|
4月前
|
缓存 关系型数据库 MySQL
MySQL并发访问与高负载处理方法
综上所述,提高MySQL并发能力和处理高负载的策略涵盖了硬件配置、软件优化、架构调整以及运维监控等多个方面。通过综合施策,可以确保数据库系统在面对不断增长的并发需求时,维持高效和稳定的性能。
268 8
|
3月前
|
SQL 存储 数据库
Django模型查询与性能调优:告别N+1问题
本文详解Django数据库查询基础与优化技巧,涵盖QuerySet使用、关联查询(一对多/多对多)、N+1查询问题及解决方案(select_related、prefetch_related)、高级查询方法及项目实战中的数据权限控制实现。
172 0
|
4月前
|
存储 数据库 Python
Django模型关系:从一对多到多对多全解析
本文详解Django模型关系:一对多(ForeignKey)及多对多(ManyToManyField)关系的定义、操作与优化技巧。同时探讨外键约束的使用场景与权衡策略。
238 0
|
4月前
|
存储 关系型数据库 MySQL
Django模型开发:模型字段、元数据与继承全方位讲解
本文将全面介绍 Django 模型的关键知识点,包括模型字段类型、映射、常用配置选项以及模型继承等高级特性,帮助开发者快速掌握模型设计与使用技巧。
158 0
|
6月前
|
SQL 数据采集 关系型数据库
实现MySQL与SQL Server之间数据迁移的有效方法
总的来说,从MySQL到SQL Server的数据迁移是一个涉及到很多步骤的过程,可能会遇到各种问题和挑战。但只要精心规划、仔细执行,这个任务是完全可以完成的。
505 18
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
2094 3
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
机器学习/深度学习 前端开发 网络架构
Django如何调用机器学习模型进行预测
Django如何调用机器学习模型进行预测
283 5

推荐镜像

更多
下一篇
oss云网关配置