在线教育平台(一):需求分析和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'

浙公网安备 33010602011771号