首页 > 编程语言 >计算机课程设计+毕业设计作品+python/django/vue的毕业设计/课程设计选题集锦

计算机课程设计+毕业设计作品+python/django/vue的毕业设计/课程设计选题集锦

时间:2024-12-15 18:32:10浏览次数:10  
标签:课程设计 vue 毕业设计 管理 python py 用户 源码 集锦

项目列表

计算机课程设计/毕业设计作品
计算机课程设计/毕业设计指南,为计算机相关专业毕业生提供源码、数据库安装、远程调试等相关服务,提供功能讲解视频,下面是50个基于python/django/vue的毕业设计/课程设计。如需java毕业设计/课程设计,请移步至这里
在这里插入图片描述

网上商城系统

这是一个基于python+vue开发的商城网站,平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。

整个平台包括前台和后台两个部分。

前台功能包括:首页、商品详情页、用户中心模块。

后台功能包括:总览、订单管理、商品管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:

shop
在这里插入图片描述

在线视频点播网站

一个视频点播网站,因为笔者非常喜欢观看视频,尤其是YouTube、bilibili都是笔者非常喜欢的视频网站,所以想自己实现一个简单的视频点播网站,学以致用。本项目分为前台和后台。

前台功能:视频列表展示、视频播放详情、详情评论、个人中心

后台功能:视频管理、评论管理、用户管理、反馈管理

源码下载:

videoproject/

在线演示: https://v.gitapp.cn

在线图书借阅系统

这是一个基于python+vue开发的图书借阅网站。平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。

整个平台包括前台和后台两个部分。

前台功能包括:首页、图书详情页、用户中心模块。

后台功能包括:总览、借阅管理、图书管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码下载:

book

电影链接搜索网站

该项目是基于python的web类库django开发的一套web网站,给同学做的毕业设计。本人的研究方向是一项关于搜索的研究项目。在该项目中,笔者开发了一个简单版的搜索网站,实现了对数据库数据的检索和更新。通过开发该项目,笔者学习和巩固了python的相关技术和框架。

源码下载:

bt
在这里插入图片描述

基于python的租房网站-房屋出租租赁系统

该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为学生的课程作业作品。内容制作非常精良。

源码下载:

python_zf

基于python的家教预约网站-家教信息平台系统

该项目是基于python/django/vue开发的家教信息平台,作为家长和学生请家教的平台。整个平台包括前台和后台两个部分。前台功能包括:首页、家教详情页、用户中心、家教入驻模块。后台功能包括:总览、家教管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码下载:

python_jiajiao

基于python+django的外卖点餐系统

该系统是基于python+django开发的外卖点餐系统。适用场景:大学生、课程作业、毕业设计。学习过程中,如遇问题可以在github给作者留言。平台采用B/S结构,后端采用主流的Python语言+django框架进行开发,前端采用主流的Vue.js进行开发。

整个平台包括前台和后台两个部分。

前台功能包括:首页、菜品详情页、订单中心、用户中心模块。
后台功能包括:总览、订单管理、菜品管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。
源码下载: python_food
在这里插入图片描述

基于python+django的酒店预定网站-酒店客房管理系统

该系统是基于python+django开发的酒店预定管理系统。适用场景:大学生、课程作业、毕业设计。学习过程中,如遇问题可在github给作者留言。 整个平台包括前台和后台两个部分。

前台功能包括:首页、客房详情页、订单中心、用户中心模块。
后台功能包括:总览、订单管理、客房管理、房间分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。
源码下载: python_hotel

基于python+django的旅游信息网站-旅游景点门票管理系统

该系统是基于python+django开发的旅游景点门票管理系统。是给师弟做的课程作业。

平台采用B/S结构,后端采用主流的Python语言+django框架进行开发,前端采用主流的Vue.js进行开发。

整个平台包括前台和后台两个部分。

前台功能包括:首页、景区详情页、门票购买、用户中心模块。
后台功能包括:总览、订单管理、景区管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。
源码下载: python_travel

基于python+django开发的宠物商店-宠物管理系统设计与实现

该系统是基于python+django开发的宠物商店-宠物管理系统。是给师妹开发的课程作业。现将源码开放给大家。 整个平台包括前台和后台两个部分。

前台功能包括:首页、宠物详情页、用户中心模块。
后台功能包括:总览、订单管理、宠物管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。
源码下载: python_pet

基于python+django的二手商品交易平台-二手商品供需系统

该项目是基于python的web类库django开发的一套web网站,二手商品交易平台,给师弟开发的课程作业。

源码下载: mask
在这里插入图片描述

基于django开发的视频点播网站

平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。

整个平台包括前台和后台两个部分。

前台功能包括:首页、视频列表页面、视频详情页、用户中心模块。
后台功能包括:总览、视频管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。
源码下载: python_video

基于django开发的学生信息管理系统

平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。

源码下载: python_student

基于django开发的学生宿舍管理系统

平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。

源码下载: python_dorm

基于django开发的药店药品信息管理系统

平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。

源码下载: python_yaodian

基于python+mysql的小区物业管理系统

功能包括:业主管理、小区物业管理、停车管理、报修管理、用户管理、日志管理、系统信息模块。

源码地址: python_wuye

基于python的社区养老管理系统

功能包括:老人管理、护工管理、亲属管理、病史管理、房间管理、活动管理、用户管理、日志管理、系统信息模块。

源码地址: python_yanglao

基于python的学生成绩管理系统

功能包括:成绩管理、学生管理、课程管理、班级管理、用户管理、日志管理、系统信息模块。

源码地址: python_score

19.基于python+mysql+vue的医院门诊管理系统
功能包括:医生管理、科室管理、护士管理、住院管理、药品管理、用户管理、日志管理、系统信息模块。

源码地址: python_hospital

  1. 基于python+mysql+vue的停车场管理系统
    功能包括:车位管理、会员管理、停车场管理、违规管理、用户管理、日志管理、系统信息模块。

源码地址: python_parking

  1. 基于python+mysql+vue开发的家政预约管理系统
    功能包括:总览、家政管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址: python_jiazheng

  1. 基于python+mysql+vue开发的健身房管理系统
    功能包括:教练管理、会员管理、场地管理、设备管理、用户管理、日志管理、系统信息模块。

源码地址: python_fitness

  1. 基于python+mysql+vue开发的宠物领养网站系统
    功能包括:总览、领养管理、宠物管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址: python_adopt

  1. 基于python+mysql+vue的租车平台/汽车租赁系统/车辆租赁
    功能包括:总览、车辆管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址: python_zuche

  1. 基于python+mysql+vue开发的大学生社团管理系统
    功能包括:总览、社团管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址: python_team

  1. 基于python的旅游景区管理系统
    功能包括:景区管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:hython_travel2

  1. 基于python的门诊挂号管理系统
    功能包括:科室管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:python_gh

  1. 基于python的音乐推荐管理系统
    功能包括:音乐管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:ython_music

在线演示:
29. 基于python的电影订票管理系统
功能包括:电影管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地python_movie

基于python的鲜花商城管理系统

功能包括:鲜花管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地thon_xh

在线演示: https://xh.gitapp.cn

基于python+vue的农产品商城管理系统

功能包括:农产品管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:ython_ncp

  1. 基于python+vue的蛋糕商城管理系统
    功能包括:蛋糕管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地python_dg

  1. 基于python+vue的酒店管理系统
    功能包括:酒店管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:ython_jiudian

  1. 基于python+vue的口腔牙科管理系统
    功能包括:服务管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:htython_teeth

  1. 基于python+vue的健身房管理系统
    功能包括:服务管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:htython_jianshen

  1. 基于python+vue的体育场馆预约管理系统
    功能包括:场馆管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址python_tiyu

  1. 基于python+vue的房产销售管理系统
    功能包括:房源管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:hython_fang

  1. 基于python+vue的美容预约管理系统
    功能包括:服务管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:httthon_face

  1. 基于python+vue的新闻管理系统
    功能包括:新闻管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:httthon_news

  1. 基于python+vue的摄影预约管理系统
    功能包括:项目管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:hthon_photo

  1. 基于python+vue的民宿客房管理系统
    功能包括:客房管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:hython_minsu

  1. 基于python+vue的鲜牛奶订购管理系统
    功能包括:套餐管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址ython_milk

  1. 基于python+vue的反诈宣传视频管理系统
    功能包括:视频管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https://gpython_fz

  1. 基于python+vue的商城管理系统
    功能包括:商品管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https/net936/python_mall

  1. 基于python+vue的家具商城管理系统
    功能包括:商品管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https://net936/python_jiaju

  1. 基于python+vue的服装商城管理系统
    功能包括:商品管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https:/net936/python_fu

  1. 基于python+vue的婚恋交友管理系统
    功能包括:会员管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https/net936/python_love

  1. 基于python+vue的母婴商城管理系统
    功能包括:商品管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https:
49. 基于python+vue的体育用品管理系统
功能包括:商品管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

源码地址:https://github.com/net936/python_sports

  1. 基于python+vue的大学生竞赛报名管理系统
    功能包括:赛事管理、分类管理、成员管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

开发文档

功能介绍

  • 商品管理:管理系统可以录入、修改和查询商品的基本信息,如名称、价格、备注等。
  • 类型管理:系统可以管理商品的类型信息,包括类型的名称等。
  • 评论管理:管理和浏览整个网站的评论信息。
  • 用户管理:管理和浏览网站的用户信息,可以新增、编辑和删除用户。
  • 统计分析:系统可以根据商品的活动数据和用户参与度进行统计和分析,帮助管理员了解整个系统的状况。
  • 消息管理:商品管理员可以在系统上发布消息,整个网站的用户都能收到。
  • 广告管理:商品管理员可以在系统上发布广告消息,然后在详情页面右侧展示。
  • 意见反馈:商品管理员可以在后台查看浏览用户提交的意见反馈信息。
  • 系统信息:管理员可以查看系统的基本信息,包括系统名称、服务器信息、内存信息、cpu信息、软件信息等。
  • 注册登录:用户通过注册和登录后,才能使用网站。
  • 门户浏览:用户进入首页后,可以浏览商品列表信息,包括最新、最热。
  • 热门推荐:基于协同过滤推荐算法的热门推荐。
  • 用户中心:包括用户基本资料修改、用户基本信息、密码、收藏点赞等。
  • 我的订单:包括我购买的商品的信息。
  • 意见反馈:包括用户提交意见反馈的入口页面。
  • 模糊搜索:顶部搜索功能,支持模糊搜索商品信息。
  • 商品评论:详情页下侧用户可以评论商品。

开发环境

  • 后端: Python 3.8 + Django 3.2
  • 前端: Javascript + Vue
  • 数据库:MySQL 5.7
  • 开发平台:Pycharm + vscode
  • 运行环境:Windows 10/11

关键技术

  • 前端技术栈 ES6、vue、vuex、vue-router、vue-cli、axios、antd
  • 后端技术栈 Python、Django、pip

后端技术

django框架

Django是一款基于Python开发的全栈式一体化Web应用框架。2003年问世之初,它只是美国一家报社的内部工具,2005年7月使用BSD许可证完成了开源。Django采用MTV设计模式,即Model(模型)+ Template(模板)+ View(视图)。它遵循MVC设计,并且内置了对象关系映射(ORM)层,使得开发者无需关心底层的数据存取细节,可以更专注于业务逻辑的开发。

Django的目的是削减代码量,简单且迅速地搭建以数据库为主体的复杂Web站点。它是全栈式框架,因此安装起来很简单,而且使用者众多。这使得Django除具有完备的官方文档之外,还有大量的关联文档、丰富的第三方库可供使用。与其他框架相比,Django用起来要轻松得多。

优点:

  • 提供了定义序列化器Serializer的方法。可以快速根据Django ORM或者其他库自动序列化或反序列化。
  • 提供了丰富的类视图MIXIN扩展类。可以简化视图的编写。
  • 具有丰富的定制层级。包括函数视图、类视图,还可以将视图与自动生成API结合,满足各种需求。
  • 支持多种身份认证和权限认证方式。
  • 内置了限流系统。

前端技术

  • npm:node.js的包管理工具,用于统一管理我们前端项目中需要用到的包、插件、工具、命令等,便于开发和维护。
  • ES6:Javascript的新版本,ECMAScript6的简称。利用ES6我们可以简化我们的JS代码,同时利用其提供的强大功能来快速实现JS逻辑。
  • vue-cli:Vue的脚手架工具,用于自动生成Vue项目的目录及文件。
  • vue-router: Vue提供的前端路由工具,利用其我们实现页面的路由控制,局部刷新及按需加载,构建单页应用,实现前后端分离。
  • vuex:Vue提供的状态管理工具,用于统一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象。
  • Ant-design:基于MVVM框架Vue开源出来的一套前端ui组件。

运行步骤

软件准备

  1. Python 3.8 下载地址
  2. MySQL 5.7 下载地址
  3. Node 下载地址

后端运行步骤

(1) 安装依赖,cd进入server目录下,执行

pip install -r requirements.txt

(2) 创建数据库,创建SQL如下:

CREATE DATABASE IF NOT EXISTS python_db[your dbname] DEFAULT CHARSET utf8 COLLATE utf8_general_ci

(3) 恢复数据库数据。在mysql下依次执行如下命令:

mysql> use xxx(数据库名);
mysql> source D:/xxx/xxx/xxx.sql;

(4) 配置数据库。在server目录下的server下的settings.py中配置您的数据库账号密码

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'python_db',   # 您的数据库
        'USER': 'root',        # 您的用户名
        'PASSWORD': '4643830', # 您的密码
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            "init_command": "SET foreign_key_checks = 0;",
        }
    }
}

(5) 启动django服务。在server目录下执行:

python manage.py runserver

前端运行步骤

(1) 安装依赖,cd到web目录,执行:

npm install 

(2) 运行项目

npm run dev

然后访问前端地址。即可

代码结构

后端结构

server  
├── myapp            // 主应用
│       └── auth                     // 认证管理
│       └── middlewares              // 中间件
│       └── permission               // 权限
│       └── views                    // 视图与接口(主要业务代码)
│       └── models.py                // 状态码
│       └── serializers.py           // 状态码
│       └── urls.py                  // 状态码
│       └── utils.py                 // 状态码
├── server             // 配置目录
├── upload             // 静态资源目录
├── requiements.txt    // 依赖项

前端结构

├── build                      // 构建相关  
├── public                     // 公共文件
│   ├── favicon.ico            // favicon图标
│   └── index.html             // html模板
├── src                        // 源代码
│   ├── api                    // 所有请求
│   ├── assets                 // 主题 字体等静态资源
│   ├── router                 // 路由
│   ├── store                  // 全局 store管理
│   ├── utils                  // 全局公用方法
│   ├── views                  // view界面
│   ├── App.vue                // 入口页面
│   ├── main.js                // 入口 加载组件 初始化等
│   └── settings.js            // 系统配置
├── .eslintignore              // 忽略语法检查
├── .eslintrc.js               // eslint 配置项
├── .gitignore                 // git 忽略项
├── babel.config.js            // babel.config.js
├── package.json               // package.json
└── vite.config.js             // vue配置

数据库设计

数据库设计,请见doc文件夹下的《表结构word文档》。

开发流程

下面是主要功能的开发流程,包括商品管理、用户管理、分类管理、评论管理、统计分析、订单管理、登录注册、热门推荐等功能。

商品管理功能的开发流程

第一步:编写实体类

在server下的myapp下的models.py下面新建Thing类。并写入相关代码(参考models.py文件)

第二步:编写序列化层

在server下的myapp下的serializers.py下新建ThingSerializer类,并相关代码。

第三步:编写views层

在server的myapp下的views下,新建Thing.py代码,并写入代码,实现增删改查

然后将该接口添加到urls.py中即可。

第四步:编写界面和API

打开前端web工程,在views文件夹下新建thing.vue文件,并填入代码(请参看thing.vue文件)

分类管理功能的开发流程

第一步:编写实体类

在server下的myapp下的models.py下面新建Classification类。并写入相关代码(参考models.py文件)

第二步:编写序列化层

在server下的myapp下的serializers.py下新建ClassificationSerializer类。

第三步:编写views层

在server的myapp下的views下,新建classification.py代码,并写入代码,实现增删改查

然后将该接口添加到urls.py中即可。

第四步:编写界面和API

打开前端web工程,在views文件夹下新建classification.vue文件,并填入代码(请参看classification.vue文件)

用户管理功能的开发流程

第一步:编写实体类

在server下的myapp下的models.py下面新建User类。并写入相关代码(参考models.py文件)

第二步:编写序列化层

在server下的myapp下的serializers.py下新建UserSerializer类。

第三步:编写views层

在server的myapp下的views下,新建User.py代码,并写入代码,实现增删改查

然后将该接口添加到urls.py中即可。

第四步:编写界面和API

打开前端web工程,在views文件夹下新建user.vue文件,并填入代码(请参看user.vue文件)

评论管理功能的开发流程

第一步:编写实体类

在server下的myapp下的models.py下面新建Comment类。并写入相关代码(参考models.py文件)

第二步:编写序列化层

在server下的myapp下的serializers.py下新建CommentSerializer类。

第三步:编写views层

在server的myapp下的views下,新建Comment.py代码,并写入代码,实现增删改查

然后将该接口添加到urls.py中即可。

第四步:编写界面和API

打开前端web工程,在views文件夹下新建comment.vue文件,并填入代码(请参看comment.vue文件)

订单管理功能的开发流程

第一步:编写实体类

在server下的myapp下的models.py下面新建Order类。并写入相关代码(参考models.py文件)

第二步:编写序列化层

在server下的myapp下的serializers.py下新建OrderSerializer类。

第三步:编写views层

在server的myapp下的views下,新建Order.py代码,并写入代码,实现增删改查

然后将该接口添加到urls.py中即可。

第四步:编写界面和API

打开前端web工程,在views文件夹下新建order.vue文件,并填入代码(请参看order.vue文件)

统计分析功能的开发流程

第一步:编写views层

在server的myapp下的views下,新建overview.py代码,并写入代码,实现统计功能。

然后将该接口添加到urls.py中即可。

第二步:编写界面和API

打开前端web工程,在views文件夹下新建overview.vue文件,并填入代码(请参看overview.vue文件)

登录注册功能的开发流程

第一步:编写views层

在server的myapp下的views下,新建user.py代码,并写入登录和注册代码。

然后将该接口添加到urls.py中即可。

第二步:编写界面和API

打开前端web工程,在views文件夹下新建登录页面login.vue 和 注册页面register.vue 文件。

热门推荐功能的开发流程

第一步:记录用户浏览记录

在thing.py的detail接口中记录用户的浏览记录。作为协同过滤推荐算法的基础。

第二步:推荐接口

在thing.py中编写推荐接口recommend,recommend调用UserCF.py中的推荐方法。实现推荐。

推荐的大概逻辑是:通过计算皮尔逊相关系数先找出距离相近的用户,然后获取用户评分最高的物品前几名。推荐给当前用户。

UserCF.py文件是协同过滤算法的核心文件,建议仔细研读。

第二步:编写界面和API

打开前端web工程,在views文件夹下新建recommend.vue页面,用于推荐数据的展示。

更多关于协同过滤的知识,请参考:
https://blog.csdn.net/net19880504/article/details/137772131

重要模块实现

分页实现

基于ant-design框架的a-table的分页插件。

// 分页变量

  const data = reactive({
    dataList: [],
    loading: false,
    keyword: '',
    selectedRowKeys: [] as any[],
    pageSize: 10,
    page: 1,
  });
  
// 分页插件
:pagination="{
          size: 'default',
          current: data.page,
          pageSize: data.pageSize,
          onChange: (current) => (data.page = current),
          showSizeChanger: false,
          showTotal: (total) => `共${total}条数据`,
        }"

请求工具实现

前端的请求工具是基于axios开发的,位于utils的http文件夹中。封装了request请求和拦截器。

const service: AxiosInstance = axios.create({
  // baseURL: import.meta.env.BASE_URL + '',
  baseURL: BASE_URL + '',
  timeout: 15000,
});

// axios实例拦截请求
service.interceptors.request.use(
  (config: InternalAxiosRequestConfig) => {
    config.headers.ADMINTOKEN = localStorage.getItem(ADMIN_USER_TOKEN);
    config.headers.TOKEN = localStorage.getItem(USER_TOKEN);

    return config;
  },
  (error: AxiosError) => {
    return Promise.reject(error);
  },
);

// axios实例拦截响应
service.interceptors.response.use(
  (response: AxiosResponse) => {
    if (response.status == 200) {
      if (response.data.code == 0 || response.data.code == 200) {
        return response;
      } else {
        return Promise.reject(response.data);
      }
    } else {
      return Promise.reject(response.data);
    }
  },
  // 请求失败
  (error: any) => {
    console.log(error.response.status);
    if (error.response.status == 404) {
      // todo
    } else if (error.response.status == 403) {
      // todo
    }
    return Promise.reject(error);
  },
);

权限控制模块

权限控制使用了BaseAuthentication实现的,具体代码可参考authentication.py

from rest_framework import exceptions
from rest_framework.authentication import BaseAuthentication
from myapp.models import User

# 接口认证
class AdminTokenAuthtication(BaseAuthentication):
    def authenticate(self, request):
        adminToken = request.META.get("HTTP_ADMINTOKEN")

        print("检查adminToken==>" + adminToken)
        users = User.objects.filter(admin_token=adminToken)
        """
        判定条件:
            1. 传了adminToken 
            2. 查到了该帐号 
            3. 该帐号是管理员或演示帐号
        """
        if not adminToken or len(users) == 0 or users[0].role == '2':
            raise exceptions.AuthenticationFailed("AUTH_FAIL_END")
        else:
            print('adminToken验证通过')


路由模块实现

前端的路由是基于vue-router框架实现的,路由文件位于src的rooter的root.js文件中。预览如下:

  {
    path: '/admin',
    name: 'admin',
    redirect: '/admin/thing',
    component: () => import('/@/views/admin/main.vue'),
    children: [
      { path: 'overview', name: 'overview', component: () => import('/@/views/admin/overview.vue') },
      { path: 'order', name: 'order', component: () => import('/@/views/admin/order.vue') },
      { path: 'thing', name: 'thing', component: () => import('/@/views/admin/thing.vue') },
      { path: 'comment', name: 'comment', component: () => import('/@/views/admin/comment.vue') },
      { path: 'user', name: 'user', component: () => import('/@/views/admin/user.vue') },
      { path: 'classification', name: 'classification', component: () => import('/@/views/admin/classification.vue') },
      { path: 'ad', name: 'ad', component: () => import('/@/views/admin/ad.vue') },
      { path: 'notice', name: 'notice', component: () => import('/@/views/admin/notice.vue') },
      { path: 'loginLog', name: 'loginLog', component: () => import('/@/views/admin/login-log.vue') },
      { path: 'opLog', name: 'opLog', component: () => import('/@/views/admin/op-log.vue') },
      { path: 'errorLog', name: 'errorLog', component: () => import('/@/views/admin/error-log.vue') },
      { path: 'sysInfo', name: 'sysInfo', component: () => import('/@/views/admin/sys-info.vue') },
    ]
  },

限速功能实现

限流(Throttle)就是限制客户端对API 的调用频率,是API开发者必须要考虑的因素。比如个别客户端(比如爬虫程序)短时间发起大量请求,超过了服务器能够处理的能力,将会影响其它用户的正常使用。又或者某个接口占用数据库资源比较多,如果同一时间该接口被大量调用,服务器可能会陷入僵死状态。为了保证API服务的稳定性,并防止接口受到恶意用户的攻击,我们必须要对我们的API服务进行限流。

我们使用了django的AnonRateThrottle限流类来实现的。可以参见myapp的auth目录下的MyRateThrottle.py文件

class MyRateThrottle(AnonRateThrottle):
    THROTTLE_RATES = {"anon": "2/min"}  # 限流每分钟只能请求2次

当某个api接口需要限流的时候,只需要添加注解即可,如下所示

@api_view(['POST'])
@throttle_classes([MyRateThrottle]) # 限流注解
def create(request):
    serializer = CommentSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return APIResponse(code=0, msg='创建成功', data=serializer.data)
    else:
        print(serializer.errors)

    return APIResponse(code=1, msg='创建失败')

常见问题

  • 数据库版本有要求吗?

需要mysql 5.7以上

  • 前端 npm install 失败怎么办?

使用国内镜像安装,设置命令为:

npm config set registry https://registry.npm.taobao.org
  • 提示"演示账号无法操作",怎么办?

将用户的权限提高,修改b_user表的role字段

  • 如何更换后端请求地址

修改store文件夹下的constants.js文件中的BASE_URL,改成你自己的后端地址

  • 如何新增页面

在views文件夹下创建新的vue文件,写入界面代码,然后在router的root.js中添加路由即可。

标签:课程设计,vue,毕业设计,管理,python,py,用户,源码,集锦
From: https://blog.csdn.net/QQ_1309399183/article/details/144470578

相关文章

  • Arduino 课程设计小项目( 卧推器材的失速检测与保护装置设计)
    Arduino课程设计小项目(卧推器材的失速检测与保护装置设计)摘要:本文详细介绍了使用Arduino结合MPU6050传感器检测失速状态,并通过舵机驱动保护装置的课程小设计。从硬件选型、电路连接到软件编程,全面阐述了项目的实现过程,旨在为对嵌入式系统开发和传感器应用感兴趣的读者提......
  • Springboot计算机毕业设计校刊投稿系统ru0o2
    Springboot计算机毕业设计校刊投稿系统ru0o2本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,编辑人员,稿件类型,在线投稿,专家,专家审核,文章分类,文章信息,稿件归档开题报告内容Springboot......
  • springboot农产品销存一体化系统-计算机毕业设计源码57231
    摘要 近年来,电子商务的快速发展引起了行业和学术界的高度关注。农产品销存一体化系统的设计与实现旨在为用户提供一个简单、高效、便捷的农产品购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升系统的可操作性。因此,我们......
  • springboot社区买菜系统-计算机毕业设计源码58363
    目 录目录1摘要2Abstract31绪论41.1选题背景41.2研究意义41.3论文结构与章节安排2基于微信小程序的社区买菜系统分析2.1可行性分析2.2系统流程分析2.2.1数据流程3.3.2业务流程2.3系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4......
  • 最新毕设-SpringBoot-养老院信息管理系统-17255(免费领项目)可做计算机毕业设计JAVA、PH
    基于SpringBoot的养老院信息管理系统的设计与实现摘 要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管......
  • 数据结构课程设计--完全覆盖问题
    1.问题分析问题背景:将一个m×nm\timesn的棋盘用2×12\times1或1×21\times2的骨牌完全覆盖,求所有不同的覆盖方案。骨牌不能重叠放置,也不能超出棋盘边界。关键约束:骨牌只能横着或竖着放置。每次放置一个骨牌,棋盘的剩余空间必须满足覆盖条件(不能留下无法用骨牌覆......
  • 【2025最新计算机毕业设计】基于SprintBoot+Vue爱之屋摄影在线预约管理系统【提供源码
    作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:......
  • JAVA毕业设计——springboot001基于SpringBoot的在线拍卖系统
    springboot001基于SpringBoot的在线拍卖系统目录springboot001基于SpringBoot的在线拍卖系统一、系统介绍二、所用技术三、环境介绍四、页面截图五、浏览地址一、系统介绍后台管理员登录包含以下功能:个人中心、用户管理、商品类型管理,拍卖商品管理、历史竞拍管理......
  • php毕业设计期末作业购物商城php+mysql+html在线购物系统购物商城购物网站宠物商城电
     一,功能介绍        前台主要包括网站首页、商品推荐、最新商品、新闻咨询、商品分类、商品资讯、评论、登录、注册、加入购物车、结算、个人中心等功能模块商品推荐、最新商品在商品推荐、最新商品模块,用户可以查看全部商品信息,选择商品进行添加购物车等操作,购......
  • express食品采购平台-毕业设计源码28367
    目录1绪论1.1课题目的与意义1.2国内外研究现状1.3论文结构与章节安排1.4express框架介绍2 基于Vue+Node的食品采购平台系统分析2.1可行性分析2.2系统功能分析2.3系统用例分析2.4本章小结3基于Vue+Node的食品采购平台总体设计3.1系统功能模块......