一  vue前端代码

实现的内容,通过对课程的分类,在每个不同的课程分类下显示相应的内容
<template>
<div class="course">
<h1>我是课程</h1>
<el-tabs type="border-card">
<el-tab-pane v-for="ca in course_category">
<span slot="label" @click="init(ca.id)"> {{ca.name}}</span>
<el-row>
<el-col :span="8" v-for="course in courses">
<el-card :body-style="{ padding: '0px' }">
<img :src='course.course_img.course_img' class="image">
<div style="padding: 14px;">
<span>{{course.name}}</span>
<div class="bottom clearfix">
<time class="time">{{ currentDate }}</time>
<el-button type="text" class="button">
<router-link :to="{'name':'courseDetail','params':{'id':course.id}}">详情
</router-link>
</el-button>
</div>
</div>
</el-card>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs> </div>
</template> <script>
export default {
data: function () {
return {
courses: [],
currentDate: new Date(),
course_category: [{'name': '全部', 'id': 0},{'name': 'django', 'id': 1}, {'name': 'linux', 'id': 2}, {'name': 'go', 'id': 3}]
}
},
methods: {
init: function (category=0) {
let _this = this;
this.$http.request({
url: this.$url + 'course/'+'?sub_category='+category,
method: 'get'
}).then(function (response) {
console.log(response.data);
_this.courses = response.data.data })
}
},
mounted: function () {
this.init()
} } </script> <style>
.time {
font-size: 13px;
color: #999;
} .bottom {
margin-top: 13px;
line-height: 12px;
} .button {
padding: 0;
float: right;
} .image {
width: 100%;
display: block;
} .clearfix:before,
.clearfix:after {
display: table;
content: "";
} .clearfix:after {
clear: both
}
</style>
序列化
class CourseCategorySerializer(serializers.ModelSerializer):
class Meta:
model = models.CourseDetail
fields = '__all__' course_name = serializers.CharField(source='course.name')
recommend_courses = serializers.SerializerMethodField() def get_recommend_courses(self, obj):
return [{'id': course.pk, 'name': course.name} for course in obj.recommend_courses.all()]
后台代码
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from app01 import models
from app01.utils.commonUtils import MyResponse
from app01.mySer import CourseSerializer, CourseDetailSerializer
from rest_framework.viewsets import ViewSetMixin from django.core.exceptions import ObjectDoesNotExist
from django.conf import settings from rest_framework.pagination import LimitOffsetPagination # Create your views here. class Course(ViewSetMixin, APIView):
def get_course(self, request, *args, **kwargs): response = MyResponse()
param = request.GET.get('sub_category', None)
print(param)
# course_list = models.Course.objects.all()
# 加分页器
# page = LimitOffsetPagination()
# page.default_limit=2
# page.max_limit=3
# page_list = page.paginate_queryset(course_list,request,self)
course_list = models.Course.objects.all()
param = int(param)
if param: if param == 0:
course_list = models.Course.objects.all()
else:
course_list = models.Course.objects.filter(category_id=param).all() course_ser = CourseSerializer(instance=course_list, many=True)
response.msg = '查询成功'
response.data = course_ser.data
print(response.get_dic) return Response(response.get_dic)

django-vue之信息过滤(过滤课程)的更多相关文章

  1. Vue数组更新及过滤排序

    前面的话 Vue为了增加列表渲染的功能,增加了一组观察数组的方法,而且可以显示一个数组的过滤或排序的副本.本文将详细介绍Vue数组更新及过滤排序 变异方法 Vue 包含一组观察数组的变异方法,它们将会 ...

  2. django: rest-framework的 分页和过滤

    django: rest-framework的 分页和过滤 2018年06月28日 10:09:01 weixin_42359464 阅读数:136 标签: flaskrestframeworkdja ...

  3. day81:luffy:课程分类页面&课程信息页面&指定分类显示课程信息&分页显示课程信息

    目录 1.构建课程前端初始页面 2.course后端的准备工作 3.后端实现课程分类列表接口 4.前端发送请求-获取课程分类信息 5.后端实现课程列表信息的接口 6.前端显示列表课程信息 7.按照指定 ...

  4. Django+Vue+Nginx+Https域名代理访问

    Django+Vue使用Nginx实现Https域名的安全访问 前端 VUE 前端访问自身域名: https://demo.com,后序使用 Nginx 代理至后端 直接访问后端https:api会无 ...

  5. 解决Django+Vue前后端分离的跨域问题及关闭csrf验证

      前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道   在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...

  6. nginx + uwsgi 部署 Django+Vue项目

    nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...

  7. Django+vue在腾讯云上搭建前后端分离项目

    最近打算用Django+vue搭建一个个人主站,在此记录一下搭建项目的整个过程. 一 开发环境: 腾讯云Centos     7 Python                3.7 Django    ...

  8. Vue 电影信息影评(豆瓣,猫眼)

    Vue电影信息影评网站 此网站是我的毕业设计,题目是"基于HTML5的电影信息汇总弄网站",由于最近在看Vue.js,所以就想用Vue.js来构建一个前端网站,这里code就不大篇 ...

  9. Nginx+uwsgi+django+vue部署项目

    购买服务器 # 购买阿里云服务器 # 短期或是测试使用,创建 按量收费 服务器,可以随时删除,删除后不再计费,但要保证账户余额100元以上 连接服务器 1)账号 >: ssh root@39.9 ...

  10. 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...

随机推荐

  1. Nginx + Lua + 共享内存

    转自:http://blog.csdn.net/lxb_champagne/article/details/17099383 lua_package_path "/usr/local/sha ...

  2. C51寄存器详解(Reg51.h)

    Reg51.h 这个头文件将C程序中能用到的寄存器名或寄存器中某位的名称与硬件地址值做了对应,在程序中直接写出这些名称,集成开发环境就能识别,并最终转换成机器代码,实现对单片机各硬件资源的准确操控. ...

  3. tp 批量转码

    读取王正东成功,然后把乱码一条一条的改回来... 专门针对mssql数据库的!!!

  4. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  5. 部署到服务器-执行脚本-脚本传递参数-需要base on 执行传入的参数(被测环境的ip)

    测试脚本 # !/usr/bin/python # -*- coding:utf-8 -*- import sys sys.path.append("..") from utils ...

  6. [css]解决iframe在ios设备上无法滚动

    原因: safari的webkit内核特性 解决方案: 在iframe外包裹一层div并另外设置其css属性为如下: -webkit-overflow-scrolling:touch; overflo ...

  7. 《随机出题软件》&《随机分队软件》源码(Windows API)

    1 引言 1.1 编写目的: 为了对院级活动<最强大脑>提供软件支持,同时为了练习使用windows API. 1.2 项目背景: 来自计算机学院学生会信息部指派的任务,规定时间完成软件的 ...

  8. hdu 1426:Sudoku Killer(DFS深搜,进阶题目,求数独的解)

    Sudoku Killer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  9. Objective-C 成员变量

    成员变量的访问权限 Objective-C中的成员变量有以下三种属性 public(外部及其子类可访问) protected(子类可访问,外部不可访问) private(外部及其子类不可访问) 默认情 ...

  10. unity发射弓箭轨迹的实现

    无论是愤怒的小鸟,还是弓箭发射功能,亦或者模拟炮弹受重力影响等抛物线轨迹,都可以使用本文的方法,模拟绝对真实. 和往常一样,先说原理.就是抛物运动,在垂直方向上做加速度运动,在水平方向上,做匀速运动. ...