2021-02-10

Django打造网络教学平台

一、所需环境:

安装环境

  • ubuntu 18.04 64位
  • Django 2.0.5
  • Pillow 5.1.0

开发环境

  • pycharm2018.2

二、准备虚拟环境

1、创建虚拟环境,并对其激活
mkdir env
virtualenv env/educa
source env/educa/bin/activate
2、在虚拟环境中安装Django和Pillow
pip install Django==2.0.5
pip install Pillow==5.1.0
3、创建新项目
django-admin startproject educa
4、在educa目录中,创建应用程序
cd educa
django-admin startapp courses

编辑educa项目中的setting.py文件,添加courses

‘courses.apps.CoursesConfig’

三、构建课程模型

网络教学平台提供不同科目的课程,每门课程将分为可配置数量的模块,每个模块将包含可配置数量的内容。
分别定义Subject、Course和Module模块。
Subject 1
Course 1
Moudle 1
Content 1(image)
Content 2(text)
Module 2
Content 3(text)
Content 4(file)
Content 5(video)

接下来构建课程模块,编辑courses应用程序的文件。

from django.db import models
from dango.contrib.auth.models import User

class Subject(models.Model):
	title = models.CharField(max_length = 200)
	slug = models.SlugField(max_lenght=200,unique = True)
	
	class Meta():
		ordering = ['title']

	def __str__(self):
		return self.title

class Course(models.Model):
	#owner表示课程老师
	owner = models.Foreignkey(User,
							related_name='courses_created',
							on_delete=models.CASCADE)
	#subject表示课程所属的科目
	subject = models.ForeignKey(Subject,
								related_name='course',
								on_delete=models.CASCADE)
	#title表示课程的标题
	title = models.CharField(max_length=200)
	#slug表示课程的标识
	slug = models.SlugField(max_length=200,unique=True)
	#overview标识课程的概述
	overview = models.TextField()
	#created表示课程创建的日期和时间
	created = models.DateTimeField(auto_now_add=True)

	class Meta():
		ordering = ['-created']

	def __str__(self):
		return self.title

class Module(models.Model):
	course = models.ForeignKey(Course,
								related_name= 'modules',
								on_delete=models.CASCADE)
	title = models.CharField(max_length=200)
	description = models.TextField(blank=True)

	def __str__(self):
		return self.title

上面代码定义了三个模块:Subject、Course、Module模块。
打开命令行,运行下面的命令

python manage.py makemigrations

再运行命令实现数据库迁移

python manage.py migrage
在管理站点中注册

编辑course应用程序终端admin.py文件

from djanog.contrib import admin
from .models import Subject,Course,Module

@admin.register(Subject)
class SubjectAdmin(admin.ModelAdmin):
	list_display=['title','slug']
	prepopulated_fields = {'slug':('title',)}

class ModuleInline(admin.StackedInline):
	model = Module
	
@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
	list_display = ['title','subject','created']
	list_filter = ['created','subject']
	search_fields= ['title','overview']
	prepopulated_fields = {'slug':('title',)}
	inlines = [ModuleInline]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值