在线教育平台(一):需求分析和model设计

 项目APP设计

  • users-用户管理
  • course-课程管理
  • organization-机构和教师管理
  • operation-用户操作管理

 新建项目

  • 新建项目及App

  

  • 新建数据库

  

  • 配置settings文件(78行开始)      

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST':'127.0.0.1',
        'POST':3306,
        'NAME':"mxzhao",
        'USER':'******',
        'PASSWORD':'******',
    }
}  
  • 启动Django,并访问测试

  

 新建应用APP

  • 可以在新建项目的时候添加一个APP
  • 可以在Tool--Run manage.py Task,进入命令行执行 startapp  ‘应用名称’即可
  • 新建后的app需要在settings.py文件中注册
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users.apps.UsersConfig',
    'operation',
    'courses',
    'organization'
]

 

 扩展user表

  • django框架本身存在自带user信息表,根据项目实际需要扩展该表。

  需要导入模块AbstractUser,新建的user表需要继承AbstractUser

class UserProlfile(AbstractUser):
    nick_name = models.CharField(max_length=50,verbose_name="昵称",default="")
    birday = models.DateField(verbose_name="生日",null=True,blank=True)
    gender = models.CharField(choices=(("male","男"),("female","女")),default="female",max_length=5)
    address = models.CharField(max_length=100,default="")
    mobile = models.CharField(max_length=11,null=True,blank=True)
    image = models.ImageField(upload_to="image/%Y%m",default="image/default.png",max_length=100)

    class Meta:
        verbose_name = "用户信息"

    def __str__(self):
        return self.username
  • 因为扩展user了,需要在settings文件中设置使用新的user表做验证

  AUTH_USER_MODEL='users.UserProlfile'     # 根据实际填写 

 ORM常用字段和参数

常用字段

  • AutoField:int自增列,必须填入参数primary_key=Ture,当model中没有自增列,则自动会创建一个列名为id的列
  • IntegerField:一个整数类型,范围在-2147483648 to 2147483647
  • CharField:字符类型,必须设置max_length参数,max_length表示字符长度
  • DateField:日期字段,日期格式YYYY-MM-DD,相当于python中的datetime.date()实例
  • DateTimeField:日期时间字段,格式YYYY-MM-DD HH:MM:SS,相当于Python中的datetime.datetime()实例
  • FileField:字符串,路径保存在数据库,文件上传到指定目录,参数 upload_to=“” 上传文件的保存路径,
  • ImageField:图片格式信息,参数 upload_to=“” 上传文件的保存路径,
  • TextField:文本类型,也是字符串类型,但不用设置max_length
  • BooleanField:布尔数据类型
AUTH_USER_MODEL='users.UserProlfile'
原文地址:https://www.cnblogs.com/ygzy/p/11193479.html