Springboot+vue+小程序+基于微信小程序的在线学习平台
一、项目介绍
基于Spring Boot+Vue+小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring Boot+Vue+小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。
功能丰富,项目保证质量,需要可以最底下查看QQ二维码找我私聊。运行讲解服务均可有尝提供,即便你是零基础,也能听懂的优秀讲解老师。
功能:
1.个人中心修改密码里查看个人信息
2.教师管理
3.学生管理
4.课程视频管理
5.课程签到管理
6.课程问题管理
7.课程答题管理
8.答题成绩管理
9.课程类型管理
10.课程资料管理
11.通知信息管理
12.加入课程管理
13.学习论坛管理
14.课程考试管理
15.试题管理
16.系统简介,轮播图,平台公告,关于我们管理
17.考试管理
关键词:商品;购物;Spring Boot框架;MySQL
二、开发环境
开发语言:Java
框架:springboot + vue + 小程序
JDK版本:JDK1.8
数据库:mysql
数据库工具:Navicat11
开发软件:idea/vscode/eclipse
Maven包:Maven







表结构示例:
表名:kechengxinxi
功能:课程信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| kechengbianhao | varchar | 200 | 课程编号 | ||
| kechengmingcheng | varchar | 200 | 课程名称 | ||
| kechengleixing | varchar | 200 | 课程类型 | ||
| keshi | varchar | 200 | 课时 | ||
| xuefen | varchar | 200 | 学分 | ||
| kechengtupian | longtext | 4294967295 | 课程图片 | ||
| shangkeshijian | varchar | 200 | 上课时间 | ||
| shangkedidian | varchar | 200 | 上课地点 | ||
| jiaoshigonghao | varchar | 200 | 教师工号 | ||
| jiaoshixingming | varchar | 200 | 教师姓名 | ||
| kechengjieshao | longtext | 4294967295 | 课程介绍 |
表名:discusskechengshipin
功能:课程视频评论表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| refid | bigint | 关联表id | |||
| userid | bigint | 用户id | |||
| avatarurl | longtext | 4294967295 | 头像 | ||
| nickname | varchar | 200 | 用户名 | ||
| content | longtext | 4294967295 | 评论内容 | ||
| reply | longtext | 4294967295 | 回复内容 |
表名:kechengqiandao
功能:课程签到
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| kechengbianhao | varchar | 200 | 课程编号 | ||
| kechengmingcheng | varchar | 200 | 课程名称 | ||
| kechengtupian | longtext | 4294967295 | 课程图片 | ||
| kechengleixing | varchar | 200 | 课程类型 | ||
| jiaoshigonghao | varchar | 200 | 教师工号 | ||
| jiaoshixingming | varchar | 200 | 教师姓名 | ||
| zhangcheng | varchar | 200 | 章程 | ||
| xuehao | varchar | 200 | 学号 | ||
| xueshengxingming | varchar | 200 | 学生姓名 | ||
| xueshengshouji | varchar | 200 | 学生手机 | ||
| zhuanye | varchar | 200 | 专业 | ||
| banji | varchar | 200 | 班级 | ||
| qiandaoshijian | datetime | 签到时间 | |||
| kechengxinde | longtext | 4294967295 | 课程心得 |
代码示例一,课程信息代码
package com.controller;import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.KechengxinxiEntity;
import com.entity.view.KechengxinxiView;import com.service.KechengxinxiService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;/*** 课程信息* 后端接口*/
@RestController
@RequestMapping("/kechengxinxi")
public class KechengxinxiController {@Autowiredprivate KechengxinxiService kechengxinxiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, KechengxinxiEntity kechengxinxi,HttpServletRequest request) {String tableName = request.getSession().getAttribute("tableName").toString();if (tableName.equals("jiaoshi")) {kechengxinxi.setJiaoshigonghao((String) request.getSession().getAttribute("username"));}EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, KechengxinxiEntity kechengxinxi,HttpServletRequest request) {EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list(KechengxinxiEntity kechengxinxi) {EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi"));return R.ok().put("data", kechengxinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(KechengxinxiEntity kechengxinxi) {EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi"));KechengxinxiView kechengxinxiView = kechengxinxiService.selectView(ew);return R.ok("查询课程信息成功").put("data", kechengxinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id) {KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);return R.ok().put("data", kechengxinxi);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id) {KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);return R.ok().put("data", kechengxinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());//ValidatorUtils.validateEntity(kechengxinxi);kechengxinxiService.insert(kechengxinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());//ValidatorUtils.validateEntity(kechengxinxi);kechengxinxiService.insert(kechengxinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {kechengxinxiService.updateById(kechengxinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids) {kechengxinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,@PathVariable("type") String type, @RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if (type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if (map.get("remindstart") != null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH, remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if (map.get("remindend") != null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH, remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<KechengxinxiEntity> wrapper = new EntityWrapper<KechengxinxiEntity>();if (map.get("remindstart") != null) {wrapper.ge(columnName, map.get("remindstart"));}if (map.get("remindend") != null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if (tableName.equals("jiaoshi")) {wrapper.eq("jiaoshigonghao", (String) request.getSession().getAttribute("username"));}int count = kechengxinxiService.selectCount(wrapper);return R.ok().put("count", count);}
}
<template v-if="showFlag"><el-form class="center-form-pv" :style='{"margin":"0 0 30px"}' :inline="true" :model="searchForm"><el-row :style='{"padding":"10px","borderRadius":"3px","background":"#fff","display":"block"}'><div :style='{"margin":"0 10px 0 0","display":"inline-block"}'><label:style='{"margin":"0 10px 0 0","color":"#666","display":"inline-block","lineHeight":"40px","fontSize":"14px","fontWeight":"500","height":"40px"}'class="item-label">课程名称</label><el-input v-model="searchForm.kechengmingcheng" placeholder="课程名称" clearable></el-input></div><div :style='{"margin":"0 10px 0 0","display":"inline-block"}' class="select" label="课程类型"prop="kechengleixing"><label:style='{"margin":"0 10px 0 0","color":"#666","display":"inline-block","lineHeight":"40px","fontSize":"14px","fontWeight":"500","height":"40px"}'class="item-label">课程类型</label><el-select @change="kechengleixingChange" clearable v-model="searchForm.kechengleixing"placeholder="请选择课程类型"><el-option v-for="(item,index) in kechengleixingOptions" v-bind:key="index" :label="item":value="item"></el-option></el-select></div><div :style='{"margin":"0 10px 0 0","display":"inline-block"}'><label:style='{"margin":"0 10px 0 0","color":"#666","display":"inline-block","lineHeight":"40px","fontSize":"14px","fontWeight":"500","height":"40px"}'class="item-label">教师姓名</label><el-input v-model="searchForm.jiaoshixingming" placeholder="教师姓名" clearable></el-input></div><el-button:style='{"border":"1px solid #5494cb","cursor":"pointer","padding":"0 34px","outline":"none","margin":"0 0px 0 10px","color":"#fff","borderRadius":"4px","background":"-webkit-linear-gradient(top,#66a4d8,#337ab7)","width":"auto","fontSize":"14px","height":"40px"}'type="success" @click="search()">查询</el-button></el-row><el-row :style='{"margin":"20px 0 20px 0","display":"flex"}'><el-button:style='{"border":"0","cursor":"pointer","padding":"0 24px","margin":"0 10px 0 0","outline":"none","color":"#fff","borderRadius":"4px","background":"rgba(64, 158, 255, 1)","width":"auto","fontSize":"14px","height":"40px"}'v-if="isAuth('kechengxinxi','新增')" type="success" @click="addOrUpdateHandler()">新增</el-button><el-button:style='{"border":"0","cursor":"pointer","padding":"0 24px","margin":"0 10px 0 0","outline":"none","color":"#fff","borderRadius":"4px","background":"rgba(255, 0, 0, 1)","width":"auto","fontSize":"14px","height":"40px"}'v-if="isAuth('kechengxinxi','删除')" :disabled="dataListSelections.length <= 0" type="danger"@click="deleteHandler()">删除</el-button></el-row></el-form><!-- <div> --><el-table class="tables":stripe='false':style='{"padding":"0","borderColor":"#eee","borderRadius":"5px","borderWidth":"1px 0 0 1px","background":"#fff","width":"100%","borderStyle":"solid"}'v-if="isAuth('kechengxinxi','查看')":data="dataList"v-loading="dataListLoading"@selection-change="selectionChangeHandler"><el-table-column :resizable='true' type="selection" align="center" width="50"></el-table-column><el-table-column :resizable='true' :sortable='false' label="索引" type="index" width="50"/><el-table-column :resizable='true' :sortable='false'prop="kechengbianhao"label="课程编号"><template slot-scope="scope">{{ scope.row.kechengbianhao }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="kechengmingcheng"label="课程名称"><template slot-scope="scope">{{ scope.row.kechengmingcheng }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="kechengleixing"label="课程类型"><template slot-scope="scope">{{ scope.row.kechengleixing }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="keshi"label="课时"><template slot-scope="scope">{{ scope.row.keshi }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="xuefen"label="学分"><template slot-scope="scope">{{ scope.row.xuefen }}</template></el-table-column><el-table-column :resizable='true' :sortable='false' prop="kechengtupian" width="200" label="课程图片"><template slot-scope="scope"><div v-if="scope.row.kechengtupian"><img v-if="scope.row.kechengtupian.substring(0,4)=='http'" :src="scope.row.kechengtupian.split(',')[0]"width="100" height="100"><img v-else :src="$base.url+scope.row.kechengtupian.split(',')[0]" width="100" height="100"></div><div v-else>无图片</div></template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="shangkeshijian"label="上课时间"><template slot-scope="scope">{{ scope.row.shangkeshijian }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="shangkedidian"label="上课地点"><template slot-scope="scope">{{ scope.row.shangkedidian }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="jiaoshigonghao"label="教师工号"><template slot-scope="scope">{{ scope.row.jiaoshigonghao }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="jiaoshixingming"label="教师姓名"><template slot-scope="scope">{{ scope.row.jiaoshixingming }}</template></el-table-column><el-table-column width="300" label="操作"><template slot-scope="scope"><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if=" isAuth('kechengxinxi','查看')" type="success" size="mini"@click="addOrUpdateHandler(scope.row.id,'info')">详情</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','加入课程')" type="success" size="mini"@click="jiarukechengCrossAddOrUpdateHandler(scope.row,'cross','','','')">加入课程</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','发布视频')" type="success" size="mini"@click="kechengshipinCrossAddOrUpdateHandler(scope.row,'cross','','','')">发布视频</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','发布资料')" type="success" size="mini"@click="kechengziliaoCrossAddOrUpdateHandler(scope.row,'cross','','','')">发布资料</el-button><el-button:style='{"border":"1px solid #00a0f0","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/161eb7a46f5d4cd19d68a1386174d662.png) #00aaff no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if=" isAuth('kechengxinxi','修改')" type="primary" size="mini"@click="addOrUpdateHandler(scope.row.id)">修改</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','查看评论')" type="primary" size="mini"@click="disscussListHandler(scope.row.id)">查看评论</el-button><el-button:style='{"border":"0","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/68bd264a8e4341c6aa5409f871d590d0.png) #d9534f no-repeat 5px 8px","width":"auto","fontSize":"14px","height":"32px"}'v-if="isAuth('kechengxinxi','删除') " type="danger" size="mini" @click="deleteHandler(scope.row.id)">删除</el-button></template></el-table-column></el-table><el-pagination@size-change="sizeChangeHandle"@current-change="currentChangeHandle":current-page="pageIndex"background:page-sizes="[10, 20, 30, 50]":page-size="pageSize":layout="layouts.join()":total="totalPage"prev-text="<"next-text=">":hide-on-single-page="true":style='{"width":"100%","padding":"0","margin":"20px 0 0","whiteSpace":"nowrap","color":"#333","fontWeight":"500"}'></el-pagination><!-- </div> --></template>
三.关于我的联系方式

相关文章:
Springboot+vue+小程序+基于微信小程序的在线学习平台
一、项目介绍 基于Spring BootVue小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring BootVue小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。…...
正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-13-按键实验
前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...
ubuntu与redhat的不同之处
华子目录 什么是ubuntu概述 ubuntu版本简介桌面版服务器版 安装部署部署后的设置设置root密码关闭防火墙启用允许root进行ssh登录更改apt源安装所需软件 安装nginx安装apache网络配置Netplan概述配置详解配置文件DHCP静态IP设置设置 软件安装方法apt安装软件作用常用命令配置ap…...
三岁孩童被家养大型犬咬伤 额部撕脱伤达10公分
近期,一名被家养大型犬咬伤了面部的3岁小朋友,在被家人紧急送来西安国际医学中心医院,通过24小时急诊门诊简单救治后,转至整形外科,由主治医师李世龙为他实施了清创及缝合手术。 “患者额部撕脱伤面积约为10公分&…...
@click=“handleClick()“不会传递默认事件参数
当你使用click"handleClick()"这种形式绑定事件处理器时,Vue会将它视为一个函数调用,而不是一个事件监听器。在这种情况下,Vue不会自动传递原生事件对象作为默认参数。 如果你想让Vue自动传递原生事件对象作为默认参数,…...
KVM安装Ubuntu24.04简要坑点以及优点
本机环境是ubuntu22.04的环境,然后是8核16线程 ssd是500的 目前对于虚拟机的选择,感觉kvm确实会更加流畅,最重要的一点是简洁,然后实际安装效果也比较的好,如果对于速度方面希望快一点,并且流畅一点的话这…...
QT_day1
#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//修改窗口标题this->setWindowTitle("4.6.0");//修改窗口图标this->setWindowIcon(QIcon("C:\\Users\\zj\\Desktop\\yuanshen\\icon"));//修改窗口大小this…...
AWS宣布推出Amazon Q :针对商业数据和软件开发的生成性AI助手
亚马逊网络服务(AWS)近日宣布推出了一项名为“Amazon Q”的新服务,旨在帮助企业利用生成性人工智能(AI)技术,优化工作流程和提升业务效率。这一创新平台的推出,标志着企业工作方式的又一次重大变…...
C++:多继承虚继承
在C中,虚继承(Virtual Inheritance)是一种特殊的继承方式,用于解决菱形继承(Diamond Inheritance)问题。菱形继承指的是一个类同时继承自两个或更多个具有共同基类的类,从而导致了多个实例同一个…...
Linux进程间通信
每个进程的用户空间都是独立的,不能相互访问。 所有进程的内核空间(32位系统3G-4G)都是共享的 应用场景 作为缓冲区,处理速度不同的进程之间的数据传输资源共享:多个进程之间共享同样的资源,一个进程对共享数据的修改,…...
【二叉树算法题记录】222. 完全二叉树的节点个数
题目描述 给你一棵 完全二叉树 的根节点root ,求出该树的节点个数。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位…...
每日新闻掌握【2024年5月6日 星期一】
2024年5月06日 星期一 农历三月廿八 大公司/大事件 多个品牌黄金优惠后价格重回600元/克以下 “五一”假期期间,记者走访调研黄金消费市场发现,受国际金价回落及“五一”假期促销等多重因素影响,终端黄金价格出现了较为明显的回落。包括周大…...
谈谈Tcpserver开启多线程并发处理遇到的问题!
最近在学习最基础的socket网络编程,在Tcpserver开启多线程并发处理时遇到了一些问题! 说明 在linux以及Windows的共享文件夹进行编写的,所以代码中有的部分使用 #ifdef WIN64 ... #else ... #endif 进入正题!!&…...
618好物节不知道买什么?快收下这份好物推荐指南!
随着618好物节的临近,你是否在为选择什么产品而犹豫不决?不用担忧,我精心准备了一份购物指南,旨在帮助你发现那些性价比高、口碑爆棚的商品。无论是科技新品还是生活小物件,这份指南都能帮你快速定位到那些值得投资的好…...
Django高级表单处理与验证实战
title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单验证逻辑模板渲染安全措施表单测试重定向管理最佳实践 引言: 在Web应用开发中,表单是用户与应用之间进行交互的重要…...
类和对象-Python-第一部分
初识对象 使用对象组织数据 class Student:nameNonegenderNonenationalityNonenative_placeNoneageNonestu_1Student()stu_1.name"林军杰" stu_1.gender"男" stu_1.nationality"中国" stu_1.native_place"山东" stu_1.age31print(stu…...
Pytorch实现图片异常检测
图片异常检测 异常检测指的是在正常的图片中找到异常的数据,由于无法通过规则进行识别判断,这样的应用场景通常都是需要人工进行识别,比如残次品的识别,图片异常识别模型的目标是可以代替或者辅助人工进行识别异常图片。 AnoGAN…...
【NOI-题解】1586. 扫地机器人1430 - 迷宫出口1434. 数池塘(四方向)1435. 数池塘(八方向)
文章目录 一、前言二、问题问题:1586 - 扫地机器人问题:1430 - 迷宫出口问题:1434. 数池塘(四方向)问题:1435. 数池塘(八方向) 三、感谢 一、前言 本章节主要对深搜基础题目进行讲解…...
探究MySQL行格式:解析DYNAMIC与COMPACT的异同
在MySQL中,行格式对于数据存储和检索起着至关重要的作用。MySQL提供了多种行格式,其中DYNAMIC和COMPACT是两种常见的行格式。 本文将深入探讨MySQL行格式DYNAMIC和COMPACT的区别,帮助读者更好地理解它们的特点和适用场景。 1. MySQL行格式简…...
MATLAB绘制蒸汽压力和温度曲线
蒸汽压力与温度之间的具体关系公式一般采用安托因方程(Antoine Equation),用于描述纯物质的蒸汽压与温度之间的关系。安托因方程的一般形式如下: [\log_{10} P A - \frac{B}{C T}] 其中, (P) 是蒸汽压(…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
