微课商城系统开发:业务逻辑,model层开发,admin后台管理

业务逻辑

在这里插入图片描述
在这里插入图片描述

model层开发

创建django项目,同时创建user的app,第一步连接数据库,在settings当中设置数据库MySQL,习惯性地将数据库的名字和项目名字一致。然后创建MySQL项目,并创建相应名字的数据库。
随后,在settings当中,习惯性地把语言和时间修改下,让它支持中文和上海时间。
在这里插入图片描述
而后,我们根据下表,分析每个字段的字段约束和字段类型,以及表与表之间的关系,一对多还是多对多。
在这里插入图片描述
在user的app里,我们在models.py中创建了用户表。
在这里插入图片描述
课程表和课程种类表,我们需要写入另一个课程app中。所以我们再django-admin startapp course,新建一个app。同时在settings里面配置,完成app的最终创建。
在这里插入图片描述
在course的models的py文件中,我们来写入相应的数据表模型,课程种类表和课程表
在这里插入图片描述
在这里插入图片描述

admin后台管理

django会自动帮我们生成一个系统后台。首先,我们先运行项目,在manage.py中,我们先ctrl,shift,f10,然后输入runserver 80的参数,再ctrl,shift,f10。运行界面,输入admin,就看到了后台管理界面。我们先创建一个超级管理员的账号,python manage.py createsuperuser,创建完毕后登陆后台管理界面,可是这个时候我们看到,并没有将user和course这两个app添加到后台中。
那么,我们需要在django中,两个app下的admin文件中,分别先注册下两个model文件中的类。
第一步,先从model文件中导入类名。第二步,@admin.register(类名)。第三步,定义个类。
在这里插入图片描述
然后,我们重启服务,刷新页面,就可以看到两个app下的表,都显示在后台页面中。
在这里插入图片描述
接下来,我们想要将django管理这个显示修改成csdn后台管理。
在这里插入图片描述
那么,我们只需要将以下的这段代码直接复制,然后添加到任意一个app的admin文件中,再刷新页面就可以了。这段代码不需要记住,只需要会复制黏贴就可以。

admin.site.site_header = 'CSDN微课后台管理'
admin.site.index_title = '后台系统'
admin.site.site_title = '管理'
然后,我们希望将course和user变成中文,课程管理和用户管理,那么,只需要将两个app中的apps.py文件中,分别加入verbose_name这个就可以了。再刷新下页面,就完成了。

在这里插入图片描述
接下来,我们想把三个表的名字改成中文,那么,就需要分别在两个app的models文件中,在类下,分别加入一个函数,class Meta()。
在这里插入图片描述
刷新页面
在这里插入图片描述
然后,我们点击用户表
在这里插入图片描述
首先,这里的字都是中文,是因为每个里面都加入了verbose name这个参数。其次,这里加粗的字体,都是必填选项。非必填是浅色。
只要增加一个blank=True的参数,之前讲过它属于表单层面的验证,那么这个选项就可以不填了。
在这里插入图片描述
因为现在的界面,性别显示0,1,对用户不友好,改成男,女。那么就需要在gender里面加入choice这个参数,外面一个大元组,里面小元组。
在这里插入图片描述
在这里插入图片描述
现在,因为用户表中只是单纯地显示出这个,但是我想把具体的id,account,username这些显示出来。
在这里插入图片描述
在这里插入图片描述
在user的admin文件中,定义的这个类下,第一行代码表示可以显示的信息。第二行代码对应右侧的可以按照性别来进行过滤。第三行代码对应的是上面的搜索框,对应的是可以按照哪几个字段进行搜索。
在这里插入图片描述
课程表和课程种类表也都是同上面的设置。
在这里插入图片描述
考虑到这里的购买用户和加入购物车的用户里面,对用户的友好性不够,我们需要在admin文件中,加入filter horizontal这行代码。
在这里插入图片描述
重启,刷新,就变成了以下的界面显示。

在这里插入图片描述
在我们选择课程种类的时候,里面出现的不是中文,所以我们在models文件中,增加一个def_str_(self):的代码,里面加入一个return self.name。
在这里插入图片描述
在这里插入图片描述
那么,课程类别就变成了python基础,就是name里面的值。同样滴,我们也可以将购买用户里面的user object变成用户的账号,就在user的model文件中,加入同样的def str的这个代码。
在这里插入图片描述
当我们增加了一个课程信息后,添加的视频文件和图片logo全在左侧
在这里插入图片描述
那么,我们不希望文件直接传到根路径里面,这样大量文件过来的时候会很乱,我们希望image文件传到一个静态资源的文件夹中,视频文件传到video文件夹中。
在这里插入图片描述
那么,我们首先在课程的models文件中新定义方法,导入os模块,然后利用os模块的方法将文件的名称和文件夹的名称连起来,形成路径。同时,在课程的信息中加入参数,upload to。
在这里插入图片描述
在这里插入图片描述

发布了15 篇原创文章 · 获赞 0 · 访问量 280

猜你喜欢

转载自blog.csdn.net/weixin_45620570/article/details/104086152