• 在线教育平台(一):需求分析和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'
  • 相关阅读:
    第二阶段:团队开发Fooks第七天
    第二阶段:团队开发Fooks第六天
    第二阶段:团队开发Fooks第五天
    【POI每日题解 #9】SKA-Piggy Banks
    ac自动机
    【POI每日题解 #8】DYN-Dynamite
    vector
    【POI每日题解 #7】TES-Intelligence Test
    【POI每日题解 #6】KRA-The Disks
    DP
  • 原文地址:https://www.cnblogs.com/ygzy/p/11193479.html
Copyright © 2020-2023  润新知