python_django_web开发:15 课程与机构app创建及其models数据表

Startapp courses 课程表 章节表 视频表 资料表
四张表:course 课程基本信息 lesson 章节信息 video视频 courseresource 课程资源表
一对多的关系:一个课程下面有多个章节 外键
视频表 为什么没有播放地址?
organization app models.py的编写
CourseOrg 课程机构信息
Teacher 教师基本信息
CityDict 城市信息

步骤:
1. 创建课程和机构应用,将创建的应用放在pps目录下

manage.py@izengzhi > startapp courses
manage.py@izengzhi > startapp organization
  1. setting.py添加应用配置
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'apps.blog.apps.BlogConfig',
    'apps.users',
    'apps.courses',
    'apps.organization'
]
  1. 创建课程的数据库表
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models
from datetime import datetime
# Create your models here.


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(max_length=2, default='zj', choices=(('cj', u'初级'), ('zj', u'中级'), ('gj', u'高级')),
                              verbose_name=u'课程难易程度')
    learn_duration = models.IntegerField(default=0, verbose_name=u'学生时长(分钟)')
    student_num = models.IntegerField(default=0, verbose_name=u'学生人数')
    favorites = models.IntegerField(default=0, verbose_name=u'收藏人数')
    image = models.ImageField(max_length=200, upload_to='courses/%Y/%m', verbose_name=u'封面图')
    click_num = 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

    def __unicode__(self):
        return self.name


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

    def __unicode__(self):
        return self.name


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

    def __unicode__(self):
        return self.name


class CourseResource(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'添加时间')
    downLoad = models.FileField(max_length=100, upload_to='course/resource/%Y/%m', verbose_name=u'课程资源文件')
    class Meta:
        verbose_name = u'课程资源'
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.name



  1. 创建机构的数据库表
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models
from datetime import datetime
# Create your models here.


class CityDict(models.Model):
    name = models.CharField(max_length=20, verbose_name=u'城市名字')
    desc = models.CharField(max_length=200, verbose_name=u'城市描述')
    add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')

    class Meta:
        verbose_name = u'城市信息'
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.name


class CourseOrg(models.Model):
    city = models.ForeignKey(CityDict, verbose_name=u'所属城市')
    name = models.CharField(max_length=100, verbose_name=u'机构名称')
    desc = models.TextField(verbose_name=u'结构描述')
    favorites = models.IntegerField(default=0, verbose_name=u'收藏人数')
    image = models.ImageField(max_length=200, upload_to='courses/%Y/%m', verbose_name=u'封面图')
    click_num = models.IntegerField(default=0, verbose_name=u'点击人数')
    address = models.CharField(max_length=150, verbose_name=u'机构地址')
    add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')

    class Meta:
        verbose_name = u'机构信息'
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.name
    pass


class Teacher(models.Model):
    org = models.ForeignKey(CourseOrg, verbose_name=u'所属机构')
    name = models.CharField(max_length=100, verbose_name=u'教师名称')
    work_years = models.IntegerField(default=0, verbose_name=u'工作年限')
    work_position = models.CharField(max_length=100, verbose_name=u'工作职位')
    work_point = models.CharField(max_length=100, verbose_name=u'教学特点')
    favorites = models.IntegerField(default=0, verbose_name=u'收藏人数')
    click_num = models.IntegerField(default=0, verbose_name=u'点击人数')
    address = models.CharField(max_length=150, verbose_name=u'机构地址')
    add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')

    class Meta:
        verbose_name = u'教师信息'
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.name
    pass
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值