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)),
]

 

 

 

 

 

 
posted @ 2022-02-18 18:08  甜甜de微笑  阅读(73)  评论(0编辑  收藏  举报