9 user模块User表
1.user模块User表
创建user模块
前提:在 luffy 虚拟环境下 1.终端从项目根目录进入apps目录 >: cd luffyapi & cd apps 2.创建app >: python ../../manage.py startapp user
注册user模型
INSTALLED_APPS = [ # ... 'user', ]
创建User表对应的model:user/models.py
# 用户表:使用auth 的user表,自定义user表
# 咱们用了auth的user表----》扩写一些字段
from django.db import models from django.contrib.auth.models import AbstractUser
# user app的models中写表
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' # 如果不配它,表名是 app名字_类名小写
verbose_name = '用户表' # 在admin中显示的表名
verbose_name_plural = verbose_name # 在admin中显示的表名,不配它会加个s
def __str__(self): # print(对象) 的时候,触发它的执行
return self.username
#下载pillow包
pip install pillow
# 在配置文件中配置
AUTH_USER_MODEL='user.User'
# 迁移数据库
python manage.py makemigrations
python manage.py migrate
#### 注意:
-如果是空项目,之前数据库没有表,这么做完全没问题 -但如果你之前迁移过数据库,这样就不行了 -因为user表已经存在了 -第一步:删库 -第二部:删除迁移文件(所有app的迁移文件) -第三步:删除django内置app的迁移文件(auth和admin这个app下migrations) -第四步:从新迁移数据库 python manage.py makemigrations python manage.py migrate
2.进行media的配置
##1 dev.py中
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
media目录配置
""" ├── luffyapi └── luffyapi/ └── media/ └── icon └── default.png """
主路由:luffy/urls.py
from django.contrib import admin from django.urls import path, re_path, include from django.views.static import serve from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('user/', include('user.urls')), re_path('^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}),
# path('media/<path:path>', serve, {'document_root': settings.MEDIA_ROOT}) ]
子路由:user/urls.py
from django.urls import path, include from utils.router import router # 注册ViewSet的路由 # router.register() urlpatterns = [ path('', include(router.urls)), ]