Django项目新建app应用及user表设计和创建

【新建app应用】

pycharm  菜单栏 >>> Tools >>> Run manage.py Task >>> 

manage.py@MxOnline> startapp users [destination]  (新建一个名称为users的app应用)

创建完成后项目目录中就会多出一个 users 文件夹,并且自动生成了必要的py文件


我们还需要编写我们的app内models.py 来连接数据库

创建数据表时Django已经为我们创建了 auth_user 的表 

id                        ==       主键ID  
password           ==       密码
last_login           ==       用户最后登录时间
is_superuser      ==       表明用户是否为超级用户
username          ==       用户名(不要随意改动)
first_name         ==        扩展字段1
last_name         ==        扩展字段2
email                 ==        邮箱
is_staff              ==        是否是员工
is_active            ==       激活状态

date_joined       ==       注册时间


默认的表并不能满足我们的需求,如性别、生日、昵称等,所以我们需要加入自定义字段,但是我们也需要继承Django原有的数据表

修改文件: users/models.py  

# _*_ encoding:utf-8 _*_

from __future__ import unicode_literals

from django.db import models

# Create your models here.

from django.contrib.auth.models import AbstractUser  # 导入需要继承的默认字段

class UserProfile(AbstractUser):
    """添加自定义的字段"""
    nick_name = models.CharField(max_length=50,verbose_name=u'昵称',default='') # 长度50 默认值为''
    birday = models.DateField(verbose_name=u'生日',null=True,blank=True) # DateField字段,可以为空
    gender = models.CharField(max_length=5,choices=(('male',u'男'),('female',u'女')),default='female')  # 因为性别只能为两种,所以我们用choices,并把默认值设置为female
    address = models.CharField(max_length=100,verbose_name=u'地址',default='')
    mobile = models.CharField(max_length=11,verbose_name=u'手机',null=True,blank=True)
    image = models.ImageField(upload_to='image/%Y/%m',default=u'image/default.png',max_length=100) # 图片类型用ImageField类型,upload_to是储存地址,default是默认头像
    # 因为我们用到了ImageField类型,这个类型依赖于另外一个库,所以我们还需要导入Pillow库(需要进入虚拟环境中安装) pip install pillow
    # 上面已经定义完表的字段,下面我们要定义Meta信息

    class Meta:
        verbose_name = '用户信息'
        verbose_name_plural = verbose_name # 这是为了防止显示的时候多出一个S

    # 下面还需要重载Unicode方法,如果不重载的话就不能打印自定义的字符串
    def __unicode__(self):
        return self.username

        # 因为是继承了AbstractUser,所以可以直接获取self.username
    # 添加好以上信息后我们还需要进入settings.py文件注册app和重载方法 AUTH_USER_MODEL = 'users.UserProfile'
    # 进入Django命令行 makemigrations users  >>>   migrate users (生成数据表)  >>> yes (询问下面这些表是否删除,键入yes,生成成功)

知识要点:

1.继承默认数据库函数

2.字段的设置

3.ImageField需要安装pillow库

4.重载unicode方法

5.注册app及重载方法AUTH_USER_MODEL

6.Django命令行注册app

7.生成数据表

8.头部编码声明


以上步骤做完后数据库中会多出3个表:

users_userprofile

users_userprofile_groups

users_userprofile_user_permissions




猜你喜欢

转载自blog.csdn.net/qq_40134903/article/details/81063044