xiaoxiamiaichiyu

syl/settings.py 配置

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

 

主路由配置

from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from syl import settings
urlpatterns = [

    path(\'course/\', include(\'course.urls\')),

]

urlpatterns +=static(settings.MEDIA_URL,document_root=setting

 

子路由配置

from rest_framework.routers import DefaultRouter
from . import views



router=DefaultRouter()
router.register(r\'type\',views.CourseTypeViewSet)
router.register(r\'tag\',views.CourseTagViewSet)
router.register(r\'course\',views.CourseViewSet)
router.register(r\'sections\',views.SectionsViewSet)
router.register(r\'chapters\',views.ChaptersViewSet)


urlpatterns = [

]

urlpatterns +=router.urls

 

 

models.py 中配置

from django.db import models

# Create your models here.
# from utils.MyBaseModel import Base
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

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



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
course/models.py

 

admin.py 中配置

from django.contrib import admin

# Register your models here.


from .import models

admin.site.register(models.CourseType)
admin.site.register(models.CourseTag)
admin.site.register(models.Course)
admin.site.register(models.Chapters)
admin.site.register(models.Sections)
Course/admin.py

 

 

serializers.py中配置

from rest_framework import serializers
from course.models import *



class CourseTypeSerializer(serializers.ModelSerializer):
    class Meta:
        model=CourseType
        fields="__all__"



class CourseTagSerializer(serializers.ModelSerializer):
    class Meta:
        model=CourseTag
        fields="__all__"


class CourseSerializer(serializers.ModelSerializer):
    class Meta:
        model=Course
        fields="__all__"





class ChaptersSerializer(serializers.ModelSerializer):
    class Meta:
        model=Chapters
        fields="__all__"


class SectionsSerializer(serializers.ModelSerializer):
    class Meta:
        model=Sections
        fields="__all__"

class CourssesDeepSerializer(CourseSerializer):
    chapters=CourseSerializer(many=True)
course/serializers

 

views 中配置

from django.shortcuts import render
# Create your views here.
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from course.models import *
from course.serializers import *

class PageNum(PageNumberPagination):
    page_size_query_param = \'page-size\'
    
class CourseTypeViewSet(viewsets.ModelViewSet):
    queryset = CourseType.objects.all()
    
    serializer_class=CourseTypeSerializer
class CourseTagViewSet(viewsets.ModelViewSet):
    queryset = CourseTag.objects.all()
    serializer_class=CourseTagSerializer
    
class CourseViewSet(viewsets.ModelViewSet):
    queryset=Course.objects.all()
    serializer_class=CourseSerializer
    
class SectionsViewSet(viewsets.ModelViewSet):
    queryset = Sections.objects.all()
    serializer_class=SectionsSerializer
    
class ChaptersViewSet(viewsets.ModelViewSet):
    queryset = Chapters.objects.all()
    serializer_class = ChaptersSerializer
Course/views

 

分类:

技术点:

相关文章: