zoukankan      html  css  js  c++  java
  • 创建课程+增加抽象基类+课程相关5张表设计

    创建课程+增加抽象基类+课程相关5张表设计
    创建课程+增加抽象基类+课程相关5张表设计
    一、创建课程
    1.创建course模型
    1.1 创建用户模型course
    python ../manage.py startapp course # 创建course模型
    1.2 在setting.py中注册course模型(第一步)

    INSTALLED_APPS = [
    'course.apps.CourseConfig',
    ]

    注:pycharm无法联想,需要把apps文件夹设置为源根

    1.3 syl/urls.py添加路由(第二步)

    urlpatterns = [
    path('course/', include('course.urls')),
    ]
    1.4 创建 course/urls.py路由文件(第三步)

    from django.urls import path, re_path
    from . import views
    urlpatterns = [

    ]

    二、增加抽象基类
    1.syl/utils/MyBaseModel.py增加抽象基 类

    from django.db import models
    class Base(models.Model):
    create_time = models.DateTimeField('创建时间', auto_now_add=True, null=True)
    update_time = models.DateTimeField('更新时间', auto_now=True, null=True)
    class Meta:
    abstract = True

    三、课程相关5张表设计
    1.课程主页面3张表

    from django.db import models
    from utils.MyBaseModel import Base
    class CourseType(Base):
    title = models.CharField('课程类别', max_length=16)
    sequence = models.IntegerField('展示顺序', default=10)
    class Meta:
    db_table = 'tb_coursetype'
    def str(self):
    return self.title
    class CourseTag(Base):
    title = models.CharField('课程标签', max_length=16)
    sequence = models.IntegerField('展示顺序', default=10)
    class Meta:
    db_table = 'tb_coursetag'
    def str(self):
    return self.title
    class Course(Base):
    STATUS = (
    ('0', '即将上线'),
    ('1', '已上线'),
    ('2', '已下线'),
    )
    title = models.CharField('课程名', max_length=24)
    desc = models.CharField('课程描述', max_length=256)
    img = models.ImageField('课程logo', upload_to='course', null=True)
    course_type = models.ForeignKey(CourseType, verbose_name='课程类型',
    on_delete=models.SET_NULL, default=None, null=True)
    course_tag = models.ManyToManyField(CourseTag, verbose_name='课程标签')
    status = models.CharField('课程状态', choices=STATUS, max_length=8,
    default='1')
    attention = models.IntegerField('关注人数', default=0)
    learner = models.IntegerField('学习人数', default=0)
    class Meta:
    db_table = 'tb_course'
    def str(self):
    return self.title
    2.课程章节表2张表

    class Chapters(Base):
    title = models.CharField('章标题', max_length=24)
    serial_num = models.IntegerField('章序号')
    course = models.ForeignKey(Course, related_name='chapters',
    on_delete=models.SET_NULL, null=True)
    class Meta:
    db_table = 'tb_chapters'
    def str(self):
    return self.title
    class Sections(Base):
    title = models.CharField('节标题', max_length=24)
    serial_num = models.IntegerField('节序号')
    chapters = models.ForeignKey(Chapters, related_name='sections',
    on_delete=models.SET_NULL, null=True)
    learn_time = models.IntegerField('学习小时', default=1)
    video = models.FileField("上传视频", upload_to="videos/%Y%m%d/", blank=True,
    max_length=1024)
    seq_num = models.IntegerField("序号", default=1)
    class Meta:
    db_table = 'tb_sections'
    def str(self):
    return self.title
    3.course/admin.py注册后台管理

    from django.contrib import admin
    from . import models
    admin.site.register(models.CourseType)
    admin.site.register(models.CourseTag)
    admin.site.register(models.Course)
    admin.site.register(models.Sections)
    admin.site.register(models.Chapters)
    4.迁移表

    python manage.py makemigrations
    python manage.py migrate

  • 相关阅读:
    Android 去除最上面应用名称及图标
    Android 仿QQ消息界面
    多线程断点续传及下载
    android 断点下载---XUtils
    Android判断网路是否畅通加权限
    Android_按两次返回键退出程序和长按返回键退出程序
    Android JPush(极光推送)的使用教程
    使用VS2013自带的PreEmptive Dotfuscator and Analytis来混淆C#代码
    Entity Framework 6连接Oracle、Postgresql、SQLite、LocalDB数据库字符串详解
    Fluent Nhibernate 数据库配置
  • 原文地址:https://www.cnblogs.com/lll11115/p/13947648.html
Copyright © 2011-2022 走看看