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
# 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