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

简介: 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 
相关文章
|
Ubuntu 关系型数据库 MySQL
mysql8.0安装初始化不需要设定root密码?
uubntu 的mysql安装完成后无法设定root密码
655 10
|
存储 关系型数据库 MySQL
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
2293 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
1320 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
存储 关系型数据库 MySQL
基于python django 医院管理系统,多用户功能,包括管理员、用户、医生,数据库MySQL
本文介绍了一个基于Python Django框架开发的医院管理系统,该系统设计了管理员、用户和医生三个角色,具备多用户功能,并使用MySQL数据库进行数据存储和管理。
761 4
基于python django 医院管理系统,多用户功能,包括管理员、用户、医生,数据库MySQL
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
1038 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
安全 Java 关系型数据库
Java连接Mysql SSL初始化失败
Java连接Mysql SSL初始化失败
|
SQL 关系型数据库 MySQL
mysql密码的初始化,修改与重置
【8月更文挑战第16天】在 MySQL 中,可通过特定步骤初始化、修改或重置密码: 1. **初始化密码**:适合首次安装或遗忘 root 密码。需先停用 MySQL 服务,以特殊模式启动(跳过权限表),登录后更新 root 用户密码,并重启服务。 2. **修改密码**:直接使用 `ALTER USER` SQL 语句或通过客户端工具如 MySQL Workbench 修改现有用户的密码。 3. **重置密码**:若遗忘密码且初始化方法不可行,则需停用服务、修改配置文件以允许无密码启动 MySQL,登录后更改密码,并恢复正常配置重启服务。
4932 2
|
安全 关系型数据库 MySQL
MySQL非root安装-初始化数据库时unknown variable ‘defaults-file=**/my.cnf‘
解决安装过程中出现的问题通常需要仔细地检查错误日志、配置文件和执行命令,保证各项配置设置的精确无误是顺利完成安装的关键。通过上述的步骤分析和解决方案,非root用户安装MySQL时遇到"unknown variable 'defaults-file=**/my.cnf'"的问题应该可以得到妥善的解决。
1432 0
|
运维 持续交付 数据库
Django中的数据迁移
【8月更文挑战第16天】本文全面介绍了Django中的数据迁移与数据库版本控制技术。涵盖了数据迁移的基础操作,如使用`makemigrations`和`migrate`命令;数据库版本控制的重要性及其实现方式;最佳实践,包括迁移文件管理、避免手动修改及使用合并迁移等;进阶应用如自动化迁移、回滚、备份恢复和多数据库支持;以及优化策略与故障处理方法。通过实例代码和深入解析,帮助开发者有效管理和优化数据库变更流程。

推荐镜像

更多