03 user模块User表

day03 user模块User表

一、User表配置

1、创建User表对应的model:user/models.py

from django.db import models
from django.contrib.auth.models import AbstractUser


class User(AbstractUser):
    telephone = models.CharField(max_length=11)
    icon = models.ImageField(upload_to='icon',default='icon/default.png')
    
    class Meta:
        db_table = 'luffy_user'  # 如果不配它,表名是  app名字_类名小写
        verbose_name = '用户表'  # 在admin中显示的表名
        verbose_name_plural = verbose_name  # 在admin中显示的表名,不配它会加个s

    def __str__(self):  # print(对象) 的时候,触发它的执行
        return self.username

2、开发media文件夹

# media配置:dev.py
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

# media配置:urls.py
from django.contrib import admin
from django.urls import path, re_path
from django.views.static import serve
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    # media文件夹路径开放了
    path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}),
]

3、注册user模块,配置User表:dev.py

INSTALLED_APPS = [
    # ...
    'user',
]

# 自定义User表
AUTH_USER_MODEL = 'user.User'

4、数据库迁移

"""
1)去向大luffyapi所在目录的终端

2)安装pillow模块
pip install pillow

3)数据库迁移
python manage.py makemigrations
python manage.py migrate
"""

5、mysqlclient

# 使用python 3.x上另一个操作数据库的模块mysqlclient
pip install mysqlclient   有时候会装不上

# 解决方案一:win的操作系统缺东西(集成库)
	-https://zhuanlan.zhihu.com/p/102535551
        
# 解决方案二:使用whl文件安装
	-https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
     -下载下来以后
    -pip install 路径+文件

6、迁移过数据库解决办法

	-如果是空项目,之前数据库没有表,这么做完全没问题
    -但如果你之前迁移过数据库,这样就不行了
    	-因为user表已经存在了
        -第一步:删库
        -第二部:删除迁移文件(所有app的迁移文件)
        -第三步:删除django内置app的迁移文件(auth和admin这个app下migrations)
        -第四步:从新迁移数据库
        python manage.py makemigrations
    	python manage.py migrate
posted @ 2022-02-23 08:55  迷恋~以成伤  阅读(34)  评论(0编辑  收藏  举报