新建app
进入Run manager.py Task,输入下边的命令:
startapp courses
并将新生成的文件夹拖入apps中。
courses的表结构
- Course:课程基本信息
- Lesson:章节信息
- Video:章节视频信息
- CourseResource:课程资料信息
courses app model编写
Course:课程基本信息
在courses app中的models.py中添加如下代码:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from datetime import datetime
from django.db import models
class Course(models.Model):
name = models.CharField(max_length=50, verbose_name=u'课程名称')
desc = models.CharField(max_length=300, verbose_name=u'课程描述')
detail = models.TextField(verbose_name=u'课程详情')
degree = models.CharField(choices=(('cj', u'初级'), ('zj', u'中级'), ('gj', u'高级')), max_length=2)
learn_times = models.IntegerField(default=0, verbose_name=u'学习时长(分钟数)')
student = models.IntegerField(default=0, verbose_name=u'学习人数')
fav_nums = models.IntegerField(default=0, verbose_name=u'收藏人数')
image = models.ImageField(upload_to='courses/%Y/%m', verbose_name=u'课程封面', max_length=100)
click_nums = models.IntegerField(default=0, verbose_name=u'点击量')
add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')
class Meta:
verbose_name = u'课程'
verbose_name_plural = verbose_name
- name :课程难度
- desc :课程描述
- detail :课程详情,使用TextField,不用指定最大长度
- degree :课程难度
- learn_times :课程需要的学习时长
- student :学习本门课程的人数
- fav_nums :点击收藏的人数
- image :课程封面
- click_nums :课程的点击量
- add_time:添加时间
Lesson:章节信息
课程和章节的关系是一对多的关系:一个课程对应多个章节,所以这里需要外键的形式。在models.py中追加如下代码:
class Lesson(models.Model):
course = models.ForeignKey(Course, verbose_name=u'课程')
name = models.CharField(max_length=100, verbose_name=u'章节名称')
add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')
class Meta:
verbose_name = u'章节'
verbose_name_plural = verbose_name
course 这里使用了外键ForeignKey
Video:章节视频信息
章节和视频也是一对多的关系:一个章节有多个视频,所以这里也用外键的形式。在models.py中追加如下代码:
class Video(models.Model):
lesson = models.ForeignKey(Lesson, verbose_name=u'章节视频')
name = models.CharField(max_length=100, verbose_name=u'视频名称')
add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')
class Meta:
verbose_name = u'视频'
verbose_name_plural = verbose_name
CourseResource:课程资料信息
在models.py中追加如下代码:
class CourseResource(models.Model):
course = models.ForeignKey(Course, verbose_name=u'资料')
name = models.CharField(max_length=100, verbose_name=u'资料名称')
download = models.FileField(upload_to='courses/resource/%Y/%m', verbose_name=u'资源文件', max_length=100)
add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')
class Meta:
verbose_name = u'课程资源'
verbose_name_plural = verbose_name
download 表示下载文件,这里使用FileField类型,可以自动生成按钮。