创建user应用与User表
使用auth表扩写的前提条件
- 你决定使用auth表扩写,项目一定不要先迁移,先建好用户表再迁移
- 如果已经迁移完了,再想用auth的user表
-删库,删迁移文件所有app
-删admin和auth的迁移文件(如下图)之后再重新迁移
创建应用user
前提:在 luffy 虚拟环境下
# 1.终端从项目根目录进入apps目录 cd luffyapi & cd apps # 2.创建app python ../../manage.py startapp user
创建User表对应的model
# user/models.py
from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): mobile = models.CharField(max_length=11, unique=True) # 需要pillow包的支持 icon = models.ImageField(upload_to='icon', default='icon/default.png') class Meta: db_table = 'luffy_user' verbose_name = '用户表' verbose_name_plural = verbose_name def __str__(self): return self.username
- 下载pillow模块
pip install pillow
注册应用配置User表
注册应用
# dev.py文件
INSTALLED_APPS = [ ... 'rest_framework', 'user', ]
配置User表
# 指定自定义的表 : [应用名.表名] AUTH_USER_MODEL = 'user.User'
配置media
media路径配置
# 在dev.py文件
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
media目录(提示:不用配置,上传文件时会自动生成)
├── luffyapi └── luffyapi/ └── media/ └── icon └── default.png
路由配置
主路由配置(路由分发)
# luffyapi/urls.py:
from django.contrib import admin from django.urls import path, include from django.views.static import serve from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('user/', include('user.urls')), path('media/<path:path>', serve, {'document_root': settings.MEDIA_ROOT}) ]
进行数据库迁移
- cd 到项目根路径下, 因为 manage.py 在项目根路径下
python manage.py makemigrations
python manage.py migrate
表迁移报错问题解决
# 遇到的问题:No module named 'utils'
分析:utils是小luffyapi下的一个包,之前有导入到其他文件下使用,现在报错说没有utils模块,考虑到是不是它所在的目录加入环境变量出了问题
- 查看发现小luffyapi已经加入到环境变量,程序运行没问题,但是表迁移,就报错
- 打印看了一下,确实环境变量有,但是不是个字符串,是个对象
- 程序运行,是没问题
- 迁移有问题:配置文件中转成字符串,就解决了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人