自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 platformio创建项目卡死问题(ctl解决)

vscode上安装完platformio后,创建一个新项目,始终在转圈,查阅官网文档后发现可以使用ctl在终端中创建项目,本文方案的前提是终端走了代理。注意,我使用的linux环境。

2024-04-05 16:17:01 518

原创 ngrok实现内网穿透

在使用jenkins进行自动化部署时,需要设置github的webhook钩子来触发构建,由于jenkins运行在自己的电脑上,因此需要通过内网穿透来接受http请求。勾选jenkins项目触发器中的GitHub hook trigger for GITScm polling。将端口映射到本地8080,此时访问ngrok提供的domain,可以访问到本地的jenkins服务。开启管道后使用github测试。注意在提供给我们的地址后面加上:/github-webhook/提交一次推送,此时自动开始构建。

2024-03-22 19:14:21 377

原创 jenkins自动化部署springboot+vue

注意,打开浏览器访问服务器8080端口进行配置时,需要使用ip地址访问。由于网络问题插件可能部分安装失败,跳过初始化手动下载上传。在插件管理页面中下载publish by ssh ,maven integration,git plugin,nodejs插件。通过ssh可以在服务器执行脚本,传送构建完的jar包等资源,通过maven integration可以连接到本地的maven进行项目打包,通过git plugin可以连接到git仓库,进行拉取资源等操作。

2024-03-22 12:08:03 1427

原创 Springboot+vue项目部署所有遇到的坑

https://flowus.cn/siriusx/share/0a818075-372b-4948-88af-c75c1d10ceab项目地址及笔记Spring Boot3+VUE3前后端分离项目基于Jwt的校验方案。

2024-01-18 21:59:12 968

原创 mysql远程连接配置

host一列为localhost表示仅支持本地连接,UPDATE mysql.user SET host = ‘%’ WHERE user = ‘root’;本地安装mysql客户端进行连接mysql -u root -h 43.142.101.58 -p。将服务器mysql配置中的bind port改为0.0.0.0,port=3306这一行去除注释。将服务器root账号由系统验证改为密码验证,并修改可以访问的ip。连接成功,使用dbeaver连接测试。安装mysql server。

2024-01-18 13:46:53 426

原创 python爬虫入门(六)BeautifulSoup使用

Tag 具有一些属性,比如 string 属性,调用该属性,可以得到节点的文本内容,所以接下来的输出结果正是节点的文本内容。也就是说,我们在 Tag 类型的基础上再次选择得到的依然还是 Tag 类型,每次返回的结果都相同,所以这样就可以做嵌套选择了。attrs 的返回结果是字典形式,它把选择的节点的所有属性和属性值组合成一个字典。除了 find_all 方法,还有 find 方法,只不过 find 方法返回的是单个元素,也就是第一个匹配的元素,而 find_all 返回的是所有匹配的元素组成的列表。

2023-10-24 18:57:09 1265

原创 python爬虫入门(五)XPath使用

对于网页的节点来说,它可以定义 id、class 或其他属性。而且节点之间还有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。在页面解析时,利用 XPath 或 CSS 选择器来提取某个节点,然后再调用相应方法获取它的正文内容或者属性,就可以提取我们想要的任意信息。这种解析库已经非常多,其中比较强大的库有 lxml、Beautiful Soup、pyquery 等,通过使用解析库,可以免去编写正则表达式的麻烦,解析效率也能有所提高。

2023-10-24 15:28:50 1483

原创 python爬虫入门(四)爬取猫眼电影排行(使用requests库和正则表达式)

本例中,利用 requests 库和正则表达式来抓取猫眼电影 TOP100 的相关内容。

2023-10-24 10:17:01 2970 1

原创 python爬虫入门(三)正则表达式

开源中国提供的正则表达式测试工具,输入待匹配的文本,然后选择常用的正则表达式,就可以得出相应的匹配结果了常用的匹配规则如下。

2023-10-23 20:50:25 1067

原创 python网络爬虫(二)基本库的使用urllib/requests

了解一下 urllib 库,它是 Python 内置的 HTTP 请求库,也就是说不需要额外安装即可使用。它包含如下 4 个模块。:它是最基本的 HTTP 请求模块,可以用来模拟发送请求。就像在浏览器里输入网址然后回车一样,只需要给库方法传入 URL 以及额外的参数,就可以模拟实现这个过程了。:异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作以保证程序不会意外终止。:一个工具模块,提供了许多 URL 处理方法,比如拆分、解析、合并等。

2023-10-23 18:57:55 1121

原创 python爬虫入门(一)web基础

HTTP请求,由客户端向服务端发出,可以分为 4 部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体(Request Body)。

2023-10-23 11:08:08 2752

原创 高斯分布与高斯过程

下图是高斯过程的可视化,其中蓝线是高斯过程的均值,浅蓝色区域 95% 置信区间(由协方差矩阵的对角线得到),每条虚线代表一个函数采样(这里用了 100 维模拟连续无限维)。左上角第一幅图是高斯过程的先验(这里用了零均值作为先验),后面几幅图展示了当观测到新的数据点的时候,高斯过程如何更新自身的均值函数和协方差函数。上式其实就是高斯过程回归的基本公式,首先有一个高斯过程先验分布,观测到一些数据(机器学习中的训练数据),基于先验和一定的假设(联合高斯分布)计算得到高斯过程后验分布的均值和协方差。

2023-10-21 14:15:09 566

原创 朴素遗传算法求解TSP问题(python语言实现)

删除额外信息后的结构化数据:# 提取坐标数据# 绘制散点图# 添加城市编号标签# 设置图形标题和坐标轴标签# 显示图形plt.show()种群初始化函数,构造一个指定种群大小的初始化种群,其中的每个个体都是一个TSP问题的可行解#种群初始化#传入种群大小,初始化种群#二维列表,每一行为一个染色体,即路径方案#单个染色体=51:#随机选取一个城市,需要是未被选取过的else:continue#初始化种群计算任意两城市之间的距离,得到距离矩阵,用于求解适应度。

2023-10-19 12:56:34 683 1

原创 爬山法求解八皇后问题

print("第"+str(num)+"种:",(1,queen_col_loc[0]),(2,queen_col_loc[1]),(3,queen_col_loc[2]),(4,queen_col_loc[3])queen_list.pop()#回溯,尝试当前行的其他皇后摆放方法。有一个 8 × 8 的棋盘,现在要将8个皇后放到棋盘上,满足:对于每一个皇后,在。检查当前位置是否与之前的皇后所在的主对角线和副对角线有冲突。检查当前位置是否与之前的皇后所在的列有冲突。回溯,尝试当前行的其他皇后摆放方法,从。

2023-10-17 18:49:41 937

原创 树模型(三)决策树

决策树是什么?决策树(decision tree)是一种基本的分类与回归方法。长方形代表判断模块 (decision block),椭圆形成代表终止模块(terminating block),表示已经得出结论,可以终止运行。从判断模块引出的左右箭头称作为分支(branch),它可以达到另一个判断模块或者终止模块。我们还可以这样理解,分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node) 和有向边 (directed edge) 组成。

2023-10-14 19:25:56 955

原创 树模型(2)随机森林

随机森林属于集成学习中bagging算法的延展,所以先来介绍一下集成学习。**集成学习:**对于训练数据集,我们通过训练一系列个体学习器,并通过一定的结合策略将它们组合起来,形成一个强有力的学习器**个体学习器:**个体学习器是相对于集成学习来说的,作为单个学习器,它通常是由一个现有的学习算法从训练数据产生,如C4.5决策树算法、BP神经网络算法等。个体学习器代表的是单个学习器,集成学习代表的是多个学习器的结合。

2023-10-14 19:25:01 397

原创 树模型(一)孤立森林

针对于不同类型的异常,要用不同的算法来进行检测,而孤立森林算法主要针对的是连续型结构化数据中的异常点。使用孤立森林的前提是,将异常点定义为那些 “容易被孤立的离群点” —— 可以理解为分布稀疏,且距离高密度群体较远的点。从统计学来看,在数据空间里,若一个区域内只有分布稀疏的点,表示数据点落在此区域的概率很低,因此可以认为这些区域的点是异常的。异常数据占总样本量的比例很小;异常点的特征值与正常点的差异很大。

2023-10-14 15:47:34 385

原创 时间序列分析基础篇

*时间序列分析(time series analysis)是量化投资中的一门基本技术。时间序列是指在一定时间内按时间顺序测量的某个变量的取值序列。**比如变量是股票价格,那么它随时间的变化就是一个时间序列;同样的,如果变量是股票的收益率,则它随时间的变化也是一个时间序列。一个时间序列可能存在的特征包括以下几种:**趋势:**趋势是时间序列在某一方向上持续运动(比如牛市时股市每天都在上涨,股票收益率持续为正;熊市时股市每天都在下跌,股票收益率持续为负)。趋势经常出现在金融时间序列中,特别是大宗商品价格;

2023-10-13 23:36:05 768

原创 Docker数据卷操作

数据卷数据卷可以在容器之间共享和重用对数据卷的修改会立马生效对数据卷的更新,不会影响镜像数据卷默认会一直存在,即使容器被删除数据卷的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。

2023-10-13 22:03:55 801

原创 Dockerfile指令详解

容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在Dockerfile中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。这里的/data目录就会在容器运行时自动挂载为匿名卷,任何向/data中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化。当然,运行容器时可以覆盖这个挂载设置。

2023-10-10 19:48:11 126

原创 利用commit理解镜像构成

换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化。当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被记录于容器存储层里。命令,手动操作给旧的镜像添加了新的一层,形成新的镜像,对镜像多层存储应该有了更直观的感觉。,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。修改了容器的文件,也就是改动了容器的存储层。的历史记录,我们会发现新增了我们刚刚提交的这一层。

2023-10-09 19:52:11 82

原创 Docker基础操作容器

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(exited)的容器重新启动。因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。

2023-10-09 19:25:52 202

原创 Docker基础

请您假定您在开发一个应用。您使用的是一台笔记本电脑,而且您的开发环境具有特定的配置。其他开发人员身处的环境配置可能稍有不同。您正在开发的应用依赖于您当前的配置,还要依赖于某些特定文件。与此同时,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境,而不产生重新创建服务器环境的开销。因此,您要如何确保应用能够在这些环境中运行和通过质量检测,并且在部署过程中不出现令人头疼的问题,也无需重新编写代码和进行故障修复?答案就是使用容器。

2023-10-09 12:18:03 190

原创 注册页面编写

Component inside renders non-element root node that cannot be animated.注意这里transition报错,在所有页面的template中都要使用div包裹起来。注册页面没什么好说的,相应的路由项要增加,主页面中的按钮也要绑定。在welcomeview中加入过渡动画。

2023-10-07 18:22:56 309 1

原创 邮箱注册实现(二)注册接口实现

此时可以对非法邮箱地址进行拦截,但返回的错误信息仍然是401,新建ValidationController进行报错的统一,对应地址为/error的控制器,记得要在安全设置中放行。在service中增加注册接口String registerEmailAccount(EmailRegisterVO);由于用户注册账号时需要提交一个表单,包括用户名密码等信息,因此注册一个实体类,EmailRegisterVO。需要判断用户名邮箱有没有冲突,在数据库中添加索引,关联字段为username和email。

2023-10-06 20:52:55 161

原创 邮件注册(一)验证码发送

同一时间可能会被多次调用,此方法为线程不安全,因此需要上锁synchronized(ip.intern())注意确认在security配置中将测试地址放行。通过邮箱实现注册,用户请求验证码完成注册操作。将验证码丢到消息队列中,再由监听器消费请求。

2023-10-06 16:28:49 162

原创 Redis数据库

在前面我们学习了MySQL数据库,它是一种传统的关系型数据库,我们可以使用MySQL来更好地管理和组织我们的数据,虽然在小型Web应用下,只需要一个MySQL+Mybatis自带的缓存系统就可以胜任大部分的数据存储工作。

2023-09-28 10:52:19 214

原创 退出登录及路由守卫实现

记得将logout get post导出,暴露给组件。退出登录后token被删除。退出后转至登录页面。

2023-09-28 10:45:49 110

原创 Axios请求封装

如果用户勾选remember,存入localstorage,不勾选存入sessionstorage。由于之前后端统一封装了返回数据,可以通过 code来判断状态。暴露组件:export {login}控制台报错跨域请求错误,在下一节中解决。

2023-09-26 14:52:14 478 1

原创 基本页面配置与登录页面编写

删除原有的所有初始内容,在views下新建WelcomeView组件。安装vue router。配置最外层登陆页面的路由。安装element ui。

2023-09-26 14:51:52 140

原创 对象转换小工具

可以看到这样的搬运不太方便。我们尝试手动显现这个功能。

2023-09-26 14:50:20 55

原创 Redis数据库

在前面我们学习了MySQL数据库,它是一种传统的关系型数据库,我们可以使用MySQL来更好地管理和组织我们的数据,虽然在小型Web应用下,只需要一个MySQL+Mybatis自带的缓存系统就可以胜任大部分的数据存储工作。

2023-09-26 14:49:26 134

原创 实现数据库用户校验

首先打开wsl2,输入命令redis-server运行redis,运行命令ip addr show eth0 | grep -oP '(?由于我建立的表名为db-account,导致发生语法错误,最后mybatis给出的语句中只有-account,请使用_进行数据库命名。查看运行的wsl2实例的ip地址,查看redis运行的默认端口号为6379,在idea中配置redis。在sql中创建对应的表,包含以上的属性,将id设为自动增加。尝试进行登陆,将用户名密码改成数据库中设置好的内容。

2023-09-25 16:40:09 119

原创 Jwt退出登陆

我们之前可以使用退出登录接口直接退出,用户Session中的验证信息也会被销毁,但是现在是无状态的,用户来管理Token令牌,服务端只认Token是否合法,那这个时候该怎么让用户正确退出登录呢?这里我们以黑名单机制为例,让用户退出登录之后,无法再次使用之前的JWT进行操作,首先我们需要给JWT额外添加一个用于判断的唯一标识符,这里就用UUID好了。首先我们从最简单的方案开始,我们可以直接让客户端删除自己的JWT令牌,这样不就相当于退出登录了吗,这样甚至不需要请求服务器,直接就退了。

2023-09-24 23:59:06 1087

原创 联想小新平板使用fastboot刷机

fastboot reboot fastboot :重启到用户fastbootd模式。fastboot reboot bootloader :重启到fastboot模式。fastboot reboot fastboot :重启到用户fastbootd模式。adb reboot fastboot :重启用户fastbootd模式。adb reboot bootloader :重启到fastboot模式。

2023-09-24 17:38:27 2327

原创 SpringSecurity(五)JWT令牌

服务器会验证令牌的有效性和权限,以确定用户的身份。而使用Token,身份认证信息已经包含在Token中,只需要在请求的Authorization头部携带Token即可,减少了每次请求的数据量,减少了网络延迟。而使用Token,服务端无需存储任何会话信息,所有的认证信息都包含在Token中,使得服务端变得无状态,减轻了服务器的负担,同时也方便了服务的水平扩展。因此,JWT令牌实际上是一种经过加密的JSON数据,其中包含了用户名字、用户ID等信息,我们可以直接解密JWT令牌得到用户的信息。

2023-09-24 10:04:50 116

原创 SpringSecurity(四)授权

对于我们来说,用户的一个操作实际上就是在访问我们提供的接口(编写的对应访问路径的Servlet),比如登陆,就需要调用/login接口,退出登陆就要调用/logout接口,而我们之前的图书管理系统中,新增图书、删除图书,所有的操作都有着对应的Servlet来进行处理。因此,从我们开发者的角度来说,决定用户能否使用某个功能,只需要决定用户是否能够访问对应的Servlet即可。我们需要做的就是指定哪些请求可以由哪些用户发起。

2023-09-24 10:03:27 56

原创 SpringSecurity(三)认证

也就是说我们可以在登陆之后的一段时间内,无需再次输入账号和密码进行登陆,相当于服务端已经记住当前用户,再次访问时就可以免登陆进入,这是一个非常常用的功能。在编写项目过程中发现有302的情况,一定要先检查是否因为没有放行导致被SpringSecurity给拦截了。

2023-09-24 10:02:56 457

原创 SpringSecurity (二)环境配置

和MVC一样,注册一个初始化器。

2023-09-24 10:02:21 36

原创 SpringSecurity(一)网络安全基础

安全是开发者永远绕不开的话题,一个不安全的网站,往往存在着各种致命漏洞,只要被不法分子稍加利用,就能直接击溃整个网站,甚至破坏网站宝贵的用户数据。而用户的授权校验,则是网站安全系统的典型代表,这也是用户访问网站的第一关,我们需要一个更加安全和可靠的授权校验框架,才能让我们的网站更加稳定。//编码格式是重中之重。标签上添加了一段JS恶意脚本,黑客可以利用这种特性,获取用户的各种信息,甚至直接发送到他的后台,这样,我们的个人信息就从网站内部被泄露了。授权 (此用户能够做哪些事情)攻击防护 (防止伪造身份攻击)

2023-09-24 10:01:48 98

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除