第九章 在线教育平台(功能完善,首页功能开发)

页面功能完善

标签:django


功能完善

第九章 在线教育平台(功能完善,首页功能开发)_第1张图片
首页
  • 登出操作

通过调用django中自带logout。

class LogoutView(View):
    def get(self, request):
        logout(request)
        from django.core.urlresolvers import reverse
        return HttpResponseRedirect(reverse('index'))
  • 课程,机构讲师点击量增加

在所有的详情页 中对clicknum+1操作

  • 收藏量的增加与减少
class AddFavView(View):
    """
    添加收藏
    """
    def post(self, request):
        fav_id = request.POST.get('fav_id', 0)
        fav_type = request.POST.get('fav_type', 0)
        if not request.user.is_authenticated():
            return HttpResponse('{"status": "fail", "msg": "用户未登录"}', content_type='application/json')

        existed_record = UserFavorite.objects.filter(user=request.user, fav_id=int(fav_id), fav_type=int(fav_type))
        if existed_record:
            existed_record.delete()
            if int(fav_type) == 1:
                course = Course.objects.get(id=int(fav_id))
                course.fav_nums -= 1
                if course.fav_nums < 0:
                    course.fav_nums = 0
                course.save()
            if int(fav_type) == 2:
                course_org = CourseOrg.objects.get(id=int(fav_id))
                course_org.fav_nums -= 1
                if course_org.fav_nums < 0:
                    course_org.fav_nums = 0
                course_org.save()
            if int(fav_type) == 3:
                teacher = Teacher.objects.get(id=int(fav_id))
                teacher.fav_nums -= 1
                if teacher.fav_nums < 0:
                    teacher.fav_nums = 0
                teacher.save()
            return HttpResponse('{"status": "success", "msg": "收藏"}', content_type='application/json')
        else:
            user_fav = UserFavorite()
            if int(fav_id) > 0 and int(fav_type) > 0:
                user_fav.user = request.user
                user_fav.fav_id = int(fav_id)
                user_fav.fav_type = int(fav_type)
                user_fav.save()
                if int(fav_type) == 1:
                    course = Course.objects.get(id=int(fav_id))
                    course.fav_nums += 1
                    course.save()
                if int(fav_type) == 2:
                    course_org = CourseOrg.objects.get(id=int(fav_id))
                    course_org.fav_nums += 1
                    course_org.save()
                if int(fav_type) == 3:
                    teacher = Teacher.objects.get(id=int(fav_id))
                    teacher.fav_nums += 1
                    teacher.save()
                return HttpResponse('{"status": "success", "msg": "已收藏"}', content_type='application/json')
            else:
                return HttpResponse('{"status": "fail", "msg": "收藏错误"}', content_type='application/json')

  • 未读消息内容的标签内容

当用户进入消息中心,则将所有消息变成已读。

首页功能实现

{% extends 'common/base.html' %}
{% load staticfiles %}
{% block custom_bread %}
{% endblock %}
{% block custom_js %}
    
{% endblock %}

{% block custom_content %}
    


    
  • 专业权威

  • 课程最新

  • 名师授课

  • 数据真实

公开课程

名师授课
专业权威

查看更多课程 >
    {% for is_course in is_courses %}
  • {% endfor %}
{% for course in courses %}

{{ course.name }}

难度:{{ course.get_degree_display() }} 学习人数:{{ course.students }}
{{ course.course_org.name }} {{ course.fav_nums }}
{% endfor %}

课程机构

名校来袭
权威认证

查看更多机构 >
{% endblock %}
class IndexView(View):
    """
    首页页面动态数据加载
    """
    def get(self, request):
        banners = Banner.objects.all().order_by('index')
        courses = Course.objects.filter(is_banner=False)[:7]
        is_courses = Course.objects.filter(is_banner=True)[:3]
        course_orgs = CourseOrg.objects.all().order_by('-click_nums')[:15]
        return render(request, 'index.html', {
            'banners': banners,
            'courses': courses,
            'is_courses': is_courses,
            'course_orgs': course_orgs
        })

公共页面的处理

  • 404页面处理

在公共url下面添加页面出错问题函数配置

# page not found
handler404 = 'users.views.page_not_found'
handler500 = 'users.views.page_error'
handler403 = 'users.views.page_forbiden'
def page_not_found(request):
    # 404 界面配置
    from django.shortcuts import render_to_response
    response = render_to_response('common/404.html', {})
    response.status_code = 404
    return response


def page_error(request):
    # 500 界面配置
    from django.shortcuts import render_to_response
    response = render_to_response('common/500.html', {})
    response.status_code = 500
    return response


def page_forbiden(request):
    # 403 界面配置
    from django.shortcuts import render_to_response
    response = render_to_response('common/403.html', {})
    response.status_code = 403
    return response
  • 生产环境下 静态文件的路劲配置

这里的变更会使xadmin后台样式受影响,后期内容在做修改。错误页面只有在生产环境下才能生效。

DEBUG = False

ALLOWED_HOSTS = ['*']

添加静态文件访问路径,与media 文件一样。修改变更内容。

STATIC_ROOT = os.path.join(BASE_DIR, 'static')


url(r'^static/(?P.*)/$', serve, {'document_root': STATIC_ROOT}),
  • 针对xadmin样式内容不限显示
xadmin后台样式出错
需将后台xadmin下面的static下的xadmin文件拷贝至项目的初始static文件下

图标不显示 需将font awesome中的fonts文件放入css下

富文本样式同样考入static文件下

具体如下图
第九章 在线教育平台(功能完善,首页功能开发)_第2张图片
后台样式文件配置
第九章 在线教育平台(功能完善,首页功能开发)_第3张图片
后台图标显示
第九章 在线教育平台(功能完善,首页功能开发)_第4张图片
富文本内容显示

  • 本篇博客原视频博主[慕课在线教育平台]
  • 本篇博客撰写人: XiaoJinZi 转载请注明出处
  • 学生能力有限 附上邮箱: [email protected] 不足以及误处请大佬指责

你可能感兴趣的:(第九章 在线教育平台(功能完善,首页功能开发))