xisafe / ADP

网络安全攻防平台项目

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ADP

网络安全攻防平台项目

组件版本

  • Python == 2.7
  • Django == 1.9
  • xadmin 使用GitHub上源码安装
  • 其他第三方包 使用pip安装

命名约定

  • 类名:大驼峰式命名法。如CourseAdmin
  • 函数名:字母全部小写,单词间使用下划线隔开。如def save_models(self):
  • 常量名:字母全部大写,单词间使用下划线隔开。如ROOT_URL
  • 字段名:字母全部小写,单词使用下划线隔开。如list_display

注释约定

  • 在含有中文的页面顶部声明utf-8编码
  • 类的注释及字段的注释例子如下
class CourseInfoView(LoginRequiredMixin, View):
    """
    课程章节信息
    """

    def get(self, request, course_id):
        """
        如果有注释的话就添加
        """
        course = Course.objects.get(id=int(course_id))
        # 课程学习人数加一
        course.students += 1
        course.save()
        # 查询用户是否已经关联此课程
        user_courses = UserCourse.objects.filter(user=request.user, course=course)
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()
        # 实现侧边栏功能,学过此课程的同学还学过什么
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_user_courses = UserCourse.objects.filter(user_id__in=user_ids)
        # 取出所有课程的id
        course_ids = [user_course.course.id for user_course in all_user_courses]
        # 获取学过该用户学过其他的所有课程
        relate_courses = Course.objects.filter(id__in=course_ids).order_by("-click_nums")[:5]
        all_resources = CourseResource.objects.filter(course=course)
        return render(request, "course-video.html", {
            "course": course,
            "all_resources": all_resources,
            "relate_courses": relate_courses,
        })

导入包约定

  • 首先导入系统包,空一行再导入自己的包。
from django.shortcuts import render
from django.views.generic.base import View
from pure_pagination import Paginator, EmptyPage, PageNotAnInteger
from django.http import HttpResponse
from django.db.models import Q
[此处应有空格]
from .models import Course, CourseResource, Video
from operation.models import UserFavorite, CourseComments, UserCourse
from utils.mixin_utils import LoginRequiredMixin

其他

  • 尽量多写注释
  • 将逻辑尽可能的写清楚,宁可代码变长
  • 写完代码后使用Pycharm->code->reformat code对代码进行规整

About

网络安全攻防平台项目


Languages

Language:CSS 36.7%Language:JavaScript 28.8%Language:Python 22.0%Language:HTML 12.5%