- 博客(83)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis
验证码操作用了com.pig4cloud.plugin的。获取用户IP地址的函数。在浏览器保存token。
2025-03-31 00:06:11
800
2
原创 SpringBoot入门实现简单增删改查
该注解使得 CateController 类成为一个 RESTful风格的控制器,可以处理 HTTP 请求,并返回 JSON 数据。定义了一个泛型类 ,用于封装统一格式的响应消息,里面有一个静态泛型方法,成功响应返回状态码、字符串和对象内容。此方法会自动匹配相同名字的字段和兼容的类型,将 first对象中的数据赋值到second对象中。,即一个可以映射到数据库表的类。通过该注解,可以捕获所有控制器中的异常,并返回统一格式的 JSON 响应。这个类用来处理全局范围内的异常,响应报异常返回统一的消息。
2025-01-15 23:27:15
1444
原创 JWT登录验证前后端设计与实现笔记
JWT是JSON Web Token的缩写,jsonwebtoken这个模块有两个常用的方法,sign()和verify()作用分别是生成token和验证token,sign()方法需要3个基本的参数,1.加密内容,2.密钥,3.过期时间。访问/login时后端会做:拿到前端请求带过来的账户和密码,连接数据库,查询登录信息是否正确,不正确则回应登录错误给前端,信息正确:生成token,把token添加到header的Authorization里,返回成功信息。补充一个数据库连接配置。
2024-02-17 20:51:41
1021
原创 【vue】图片加载骨架
在网速较低或者网站的服务器宽带只有几MB的情况下,网页中的图片加载时,要么空白,要么像打印机一样一行一行地“扫描”出来,为了提升用户体验,可以给图片标签外加一层骨架。
2024-01-29 00:32:52
507
原创 【vue3】GSAP在vue中的使用
第一行是创建一个timeline,这是gsap中一个强大的排序工具,易于把一套动画作为一个整体进行控制并且能精确管理时间。是挨个运行的,就是说第一个动画运行完第二个才开始运行,当然你可以设置某个动画提前运行,defaults是默认属性,ease是。这里用的是选项式,在methods属性中创建一个方法用来写gsap的动画。最终位置,就是说你要填的是元素最终的样式。下面几行就是写gasp的动画,to()方法的意思是,导入GSAP,如果需要导入gsap的插件可以。,duration是每个动画的过渡时间。
2024-01-22 23:36:23
3638
2
原创 ECharts笔记-------柱状图与折线图
这幅图表由title、legend、series、xAxis、yAxis和tooltip这六个组件组成,每个组件都有对应的属性来调节参数,title和legend的代码跟一样,这里就不多讲了。
2023-07-14 16:47:44
598
原创 ECharts笔记-------饼状图
这幅饼状图由title、legend、series和tooltip这四个组件组成,每个组件都有对应的属性来调节参数,下面是组件的具体内容。
2023-07-14 01:23:57
1313
原创 VUE实现box-shadow生成器
我们知道input的color只有rgb而没有rgba,所以我们需要写一个函数来生成rgba。为input标签绑定v-modle,来实现双向绑定。为box绑定内联样式。
2023-06-23 20:27:08
736
原创 Webpack 笔记Ⅰ
Webpack 本身只能处理 is、ison 等资源,其他资源需要借助 loader,Webpack 才能解析。eslint是用于检查javascript语法的,帮助我们检查语法错误和纠正语法错误。以开发模式打包 main.js(production--生产模式)指示Webpack打包完的文件输出到哪里去,如何命名等。以CSS为例:在入口文件中导入css样式文件。指示Webpack在哪里开始打包。扩展 Webpack 的功能。生产模式:production。创建webpack配置文件。
2023-04-09 22:30:47
337
原创 Vue3+WebSocket 实时聊天框架
封装WebSocket基本框架。必备监听器值open、close、error、message。在页面调用封装好的WebSocket。send()为发送函数。创建js文件, ↓↓↓↓↓参考代码↓↓↓↓↓。连接websocket时触发。关闭websocke时触发。
2023-03-20 20:59:37
1378
原创 【小程序】pages,subPackages,tabbar结构(仅供回忆)
【代码】【小程序】pages,subPackages,tabbar结构(仅供回忆)
2023-01-21 23:13:52
436
原创 【微信小程序】全局数据共享
注意:Mobx相关的包安装完毕之后,记得删除miniprogram_npm目录后,再进行npm重构。创建一个文件夹,再创建一个js文件用来创建Store的实例对象。mobx-miniprogram-bindings用来。把Store中的共享数据或方法,绑定到组件或页面中使用。创建actions方法,用来修改store中的数据。用来创建Store实例对象。btnHandler2方法。btnHandler方法。
2023-01-08 22:06:45
785
原创 【微信小程序】父子组件之间的通信
里调用this.selectComponent("id或class选择器"),获取子组件的实例对象,从而直接访问子组件的任意数据和方法。● 父组件可以通过this.selectComponent()获取子组件实例对象, 这样就可以直接访问子组件的任意数据和方法。的xml中,通过自定义事件的形式,将步骤1中定义的函数引用,传递给子组件。④ 在父组件的js中,通过e.detail获取到子组件传递过来的数据。的js中,定义一个函数,这个函数通过自定义事件的形式传递给子组件。件传递数据,可以传递任意数据。
2023-01-05 18:11:50
545
原创 html+css+js | 霓虹滚动条,自拟定滚动条
滚动条效果实现步骤1、隐藏默认滚动条::-webkit-scrollbar{ width: 0;}2.仿制滚动条创建两个div,一个是滚动条的槽,一个滚动条。<div id="progressbar"></div><div id="scrollPath"></div>...
2022-05-24 21:29:01
350
原创 【Python】爬虫-----数据解析之CSS解析
如何使用CSS解析数据?1.导入所需模块import parsel2.把要解析的数据转化为Selector对象selector = parsel.Selector(要解析的内容)3.调用css函数输入解析规则定位class里的h1,并拿到它里面的内容:selector.css('.bookname h1::text').get()定位id,并拿到它里面的内容:selector.css('#content::text').getall() #getall()
2022-02-17 16:27:17
5667
原创 【Python】pyqt5-----QLabel
QLabel继承自QFrame构造函数QLabel(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) QLabel(str, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) 设置对齐 setAlignment(Qt.Alignmen
2022-02-10 21:25:57
1516
原创 【Python】pyqt5-----QDialog、QFontDialog、QColorDialog、QFileDialog
QDialog继承自QWidget模态对话框应用程序级别:当该种模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口。通过exec()来打开对话框——默认值。窗口级别:该模态仅仅阻塞与对话框关联的窗口,但依然允许用户与程序中其它窗口交互,通过open()来打开对话框。非模态对话框...
2022-02-09 20:50:23
1409
原创 【Python】pyqt5-----QComboBox、QFontComboBox
QComboBox继承自QWidget数据操作添加条目项addItem(str) 创建条目项。 addItem(QIcon, str) 创建带图标的条目项。 addItems(Iterable[str]) 添加多个条目项。 插入条目项insertItem(int, str) 在int处插入条目项,int为索引值。 insertItem(int, QIcon, str) 插入带图标的条目项。 insertItems(int, Iterable[
2022-02-05 22:08:35
2182
原创 【Python】pyqt5-----QAbstractSpinBox
QAbstractSpinBox继承自QWidget长按步长加快频率设置setAccelerated(bool) 设置长按步长加快频率。 isAccelerated() -> bool 获取是否设置长按步长加快频率。 只读设置setReadOnly(bool) 设置为只读模式。 isReadOnly() -> bool 获取是否设置为只读模式。 ...
2022-02-04 17:14:54
1926
原创 【Python】pyqt5-----QLineEdit、QFrame、QAbstractSlider、QTextEdit
QLineEdit继承自QWidgetQLineEdit创建QLineEdit(parent) QLineEdit创建1。 QLineEdit(str, parent) QLineEdit创建2。 文本相关设置setText(str) 设置内容文本。 insert(newText) 在光标处插入文本。 text() 获取真实内容文本。 displayText() 获取用户能看到的内容文本。 输出模式设置setEchoMode(int
2022-02-03 00:14:31
1632
原创 【Python】pyqt5-----QPushButton、QCommandLinkButton、QToolButton、QRadioButton、QButtonGroup、QCheckBox
QPushButton继承于QAbstractButton。创建按钮控件QPushButton(parent) 创建控件的同时, 设置父控件。 QPushButton(text, parent) 创建控件的同时, 设置提示文本和父控件。 QPushButton(icon, text, parent) 创建控件的同时, 设置图标, 提示文本和父控件。 菜单相关setMenu(QMenu) 设置菜单。 menu() 获取菜单。 showMenu()
2022-01-21 22:01:09
1287
原创 【Python】pyqt5-----QAbstractButton
QAbstractButton继承自QWidget文本相关setText(str) 设置按钮文本。 text() 获取按钮文本。 图片相关setIcon(QIcon("xxx.png")) 设置图标。 setIconSize(QSize(w, h)) 设置图标大小。 icon() 获取图标 iconSize() 获取图标大小 设置快捷键setShortcut("Alt+G") 绑定快捷键。 setText 如果提示文
2022-01-19 20:20:07
810
原创 【Python】pyqt5-----QWidget
QWidget是QObject的一个子类,父类的功能子类可以用。一、位置大小设置move(x,y) 操控x,y;包括窗口框架。 resize(width,height) 操控宽和高;不包括窗口框架。 setGeometry(x_noFrame,y_noFrame,width,height) 设置用户区域的x,y,宽度和高度。 adjustSize() 根据内容自适应大小。 setFixedSize() 设定固定尺寸。 ...
2022-01-15 16:01:19
2715
原创 【Python】pyqt5-----QObject
这个是我们程序的框架,下面介绍的函数from PyQt5.Qt import *import sysclass Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("ABCDE") self.resize(500, 500) self.ui() def ui(self): obj = QObject.
2021-12-23 12:10:38
1658
1
原创 【C++】类与对象
一、类的定义class Student{ public: //公有成员 private: //私有成员 protected: //保护成员};二、对象的定义Student stu1;class Student{}stu1,*stu2,stu3[5];三、对象中的函数class Student{ public: void Input(string,int); private:
2021-12-17 19:41:12
1130
原创 【Python】体验pyqt5
一、体验pyqt5from PyQt5.Qt import *import sysapp = QApplication(sys.argv)window = QWidget()window.setWindowTitle("pyqt5窗口")window.resize(600,500)window.move(400,200)lable = QLabel(window)lable.setText("Hello World!")lable.move(300,200)window.s
2021-12-14 22:42:03
731
原创 【Python】逆向爬虫-----模拟试客联盟登录(RSA)
栗子是:登录 - 试客联盟一、拿到加密代码可以看到密码被加密了,我们在搜索框里搜索 “password ” ,找到并打开包含该关键词的js文件,查看里面的代码。我们找到了这段代码,这段代码里有"RSA"、"encrypted"这些单词,应该是与加密有关的。这段代码的大致意思我们可以读懂:4782行:serializeArray()这个js函数是用来实现序列化的,我们可以看到他作用于loginForm这个ID的标签,loginForm这个标签就是填写登录信息,也就是说formDa...
2021-12-11 17:19:54
1462
原创 【Python】逆向爬虫-----模拟steam登录(RSA)
栗子是:Sign In一、拿到加密代码由图可以看到password被加密了。我们在搜索框里搜索 “password =” 。我们在这行代码中找到了加密代码的语句,是一个RSA的加密。我们在这里设置一个断点。再次提交登录。我们复制这两行代码到js调试工具。把复制过来的代码放进一个函数里,接下来我们要补全函数 。我们回到检测工具定位到getPublicKey()这个函数。通过观察可知,这个js文件里面写的是NSA加密的内容,所以我们把文件里的全部代码...
2021-12-10 16:34:23
2148
原创 【Python】逆向爬虫-----模拟微信公众平台登录(MD5)
栗子是:微信公众平台的登录。由图可以看到password是被加密成一段32个字符的字符串,应该是一个MD5的加密。我们用搜索工具搜索一下pwd,查看它所在的js文件。在js文件里找到了一行可疑是进行加密的代码,因为我们看到它有个substr(0, 16)是用来截取16个字符的函数,我们在这里设置断点。这时我们再次点一下登录,发送请求。OK!我们应该没有猜错,执行函数前我们的pwd还没有被加密。我们在这个函数u里设置一个断点,然后点击“进入下一个函数调用...
2021-12-08 23:55:49
1901
2
原创 【Python】逆向爬虫-----常见的加密方法
一、MD5加密MD5加密是一种被广泛使用的线性散列算法,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整的一致性。且MD5加密之后产生的是一个固定长度(32位或16位)的数据。若要破解MD5加密,需要找到MD5加密的基础源码,然后进行逆向。二、DES/AES加密DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的算法。该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的密钥(一组字符串)即可。
2021-12-07 21:24:17
3862
chromedriver——谷歌浏览器驱动-----浏览器版本为96.0.4664.45
2021-12-04
网页的视频背景在QQ浏览器中不知什么原因无法生效
2022-06-15
html或css3有什么属性可以把网页默认以PC端打开
2022-05-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人