自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 deepin 卸载nginx

在Deepin系统中,要卸载nginx,可以通过终端执行以下步骤:停止nginx服务:禁用nginx服务(如果不再需要开机自启):使用包管理器卸载nginx:清除安装包中未被移除的配置文件和依赖:清除已卸载包的本地仓库信息:

2024-07-13 15:14:40 166

原创 vue 组件里面的方法修改外面的数据

方法来触发一个事件,然后在父组件中监听这个事件并响应地修改数据。这是一种组件间通信的方式,可以用来从子组件修改外面的数据。在这个例子中,当在子组件中点击按钮时,父组件监听这个事件,并使用。在Vue组件内部,可以通过。的事件,并传递了新的数据。方法会被调用,它通过。

2024-07-12 18:42:14 401

原创 /usr/local/mysql/bin/mysql: error while loading shared libraries: libncurses.so.6: cannot open share

这个错误通常是由于缺少libncurses库引起的。

2024-07-04 14:00:38 214

原创 centos7 安装mysql8.0.34

CentOS 7 默认使用 MariaDB 作为数据库管理系统,因此在安装 MySQL 之前需要卸载 MariaDB。创建并编辑 MySQL 配置文件。进入 MySQL 的。

2024-07-04 13:56:44 159

原创 centos7 安装redis

命令下载 Redis 安装包。Redis 是由 C 语言开发的,因此在安装之前需要确保服务器已经安装了。将 Redis 的配置文件复制到。将 Redis 的命令安装到。

2024-07-04 11:20:19 276

原创 thinkphp8 fetchSql,buildSql和使用闭包构造子查询

fetchSql方法表示不进行查询而只是返回构建的SQL语句,并且不仅仅支持select,而是支持所有的CURD查询。

2024-06-30 15:46:24 363

原创 thinkphp8 时间查询

你可以通过在数据库配置文件中设置添加自定义的时间查询规则,],

2024-06-30 15:33:23 300

原创 thinkphp8 执行 db:: 需要引入什么

确保在执行数据库操作之前,已经配置了正确的数据库连接信息在。类来执行数据库操作,例如查询、插入、更新和删除。在ThinkPHP8中,执行数据库操作需要使用。在您的控制器或模型文件顶部,使用以下代码引入。静态调用,您需要引入。

2024-06-30 15:12:17 236

原创 mysql lpad函数和rpad函数的用法

padded_length 填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从右往左的n个字符;pad_string 填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。pad_string 填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。string 准备被填充的字符串;

2024-06-29 17:59:58 360

原创 git 基本命令

我们也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。2. 将testing 分支合并到当前分支(主分支上)git merge testing。切换到testing分支: git checkout testing。删除分支命令 : git branch -d (branchname)1. 查看当前所在的分支 : git branch 当前所在主分支。

2024-06-19 11:40:51 243

原创 flask 登录记录session

以下是一个简单的示例,展示了如何在用户登录后将用户信息存储在session中,并在其他页面检查session来确认用户是否已经登录。在这个例子中,login视图处理登录表单提交,并在验证用户信息后将用户名存储在session中。index视图检查session来确定用户是否已经登录,如果没有登录,用户会被重定向到登录页面。记得在实际应用中,密钥应该是一个复杂的随机字符串,并且应该保护它不被恶意用户获取。同时,处理用户登录时应该加密存储密码,并在服务器端验证用户输入的凭据。

2024-05-29 16:46:39 339

原创 python 获取视频的时长

方法三:使用ffprobe命令行工具。方法一:使用moviepy库。方法二:使用cv2库。

2024-05-20 10:02:48 475

原创 Scrapy顺序执行多个爬虫

使用subprocess按照顺序执行多个爬虫,新建一个start.py文件,输入一下内容,第一种:bat方式运行。

2024-05-19 18:04:45 475

原创 Scrapy 从创建到运行

其中,myspider_spider是你的爬虫名称,example.com是你希望爬取的网站域名,你可以根据自己的需要进行修改。Scrapy提供了丰富的功能和灵活的扩展性,让你能够快速编写爬虫代码,并高效地从网页中提取所需的数据。其中,myspider_spider是你的爬虫名称,你可以根据自己的设置进行调整。2、Scrapy将开始抓取数据,同时你将在命令行中看到打印出的抓取到的数据。其中,myspider是你的项目名称,你可以根据自己的需要进行修改。1、打开命令行,进入你希望创建项目的目录。

2024-05-19 17:51:59 224

原创 python pymysql 调用存储过程

【代码】pythonpymysql调用存储过程。

2024-05-14 15:40:57 187

原创 scrapy 使用Selenium与Scrapy处理动态加载网页内容的解决方法

在爬虫技术领域,处理动态加载的网页内容常常是一项挑战,尤其是对于那些通过用户滚动或其他交互动态加载更多内容的网站。本文将介绍如何结合使用Selenium和Scrapy来有效处理这类网页。首先,我们探索如何使用Selenium在Scrapy中间件中处理动态加载内容的网页。关键在于模拟用户滚动行为,以加载并捕获所有内容。下面是一个使用Selenium和Scrapy爬取网易新闻的示例。初探Selenium与Scrapy的结合。完整的Scrapy爬虫实例。

2024-05-09 17:26:25 512 1

原创 ThinkPHP5.1 验证器

我们定义一个\app\index\validate\User验证器类用于User的验证。在非控制器的地方如果需要执行批量验证,可以在验证的时候添加是否批量的方法batch()'name.max' => '名称最多不能超过25个字符','age.between' => '年龄只能在1-120之间','email' => '邮箱格式错误','age.number' => '年龄必须是数字','name.require' => '名称必须','email' => '邮箱格式错误',

2024-05-09 08:54:17 427

原创 python selenium 滑动后获取动态追加的元素

使用WebDriverWait和expected_conditions来等待元素加载。执行滑动操作,可以调用execute_script方法来模拟滑动。使用Selenium定位到滑动条元素。

2024-05-08 17:47:06 295 1

原创 thinkphp5.1 模型auto

注意:自动完成的字段名称是在数据库中定义的字段名称,而不是模型属性名称。如果你需要在自动完成中使用更复杂的逻辑,可以在模型中定义setFieldAttr方法,其中Field是大写的字段名。在ThinkPHP5.1中,模型的自动完成功能可以通过在模型类中定义auto属性来实现。这个属性是一个数组,包含了需要自动填充的字段和对应的处理规则。在这个例子中,当创建或更新User模型的记录时,create_time和update_time字段会自动设置为当前的时间戳。

2024-05-08 08:44:33 399

原创 stripe支付

4 'price' => '对应产品目录的API ID',5 'quantity' => 10, // 数量默认为1,我这边产品单价是1,6 ]],7 'mode' => 'payment', // 结账模式 付款8 'success_url' => $YOUR_DOMAIN . '/success.html', // 支付成功跳转的页面。

2024-05-07 16:28:09 1032

原创 thinkphp5.1 初始化方法initialize

在Tp5.1中可以使用initialize方法进行控制器的初始化,但是当前控制器需要继承控制器基类 (think\Controller )或者当前控制器继承的类继承了控制器基类(think\Controller ),否则initialize方法无效。如果不继承控制器基类(think\Controller)的同时又使用初始化方法,可以使用__construct代替。c)对于tp5.0版本,控制器初始化方法是_initialize(),模型的初始化方法是initialize()

2024-05-07 15:10:47 288

原创 mysql 启动指定pid 文件位置

MySQL服务启动时,可以指定用于存储进程ID文件的位置。这通常通过在启动服务时使用--pid-file选项来完成。如果你想要改变默认的PID文件位置,可以在my.cnf(在Unix系统上通常位于/etc/my.cnf或/etc/mysql/my.cnf)或my.ini(在Windows系统上)中设置。请确保指定的路径是可写的,并且MySQL进程有权限在该位置创建文件。如果指定的位置已经有一个PID文件存在,MySQL将不会覆盖它,除非它属于同一个MySQL服务实例。

2024-05-07 14:47:58 872 1

原创 thinkphp5.1 模型model命令行创建

该命令将在 common模块目录的model 目录下新建user模型。该命令将在 index模块目录的model 目录下新建user模型。该命令将在 index模块目录的model 目录下新建user模型。

2024-05-07 09:30:04 141

原创 ThinkPHP5.1 创建控制器类

在ThinkPHP中,控制器是MVC模式中的核心组件之一,负责接收用户请求并处理相应的业务逻辑。在本篇技术博客中,我们将深入探讨ThinkPHP5.1中的控制器操作,包括创建控制器、路由绑定、请求参数获取等方面的知识点。1.创建控制器 在ThinkPHP5.1中,我们可以通过使用命令来快速创建控制器。我们可以在新创建的控制器中编写业务逻辑代码。我们可以在新创建的控制器中编写业务逻辑代码。文件夹中创建一个名为。文件夹中创建一个名为。

2024-05-07 08:53:55 326

原创 thinkphp5.1 新建模块

这样,一个新的模块就创建完成了。你可以在NewModule模块下的controller目录中添加控制器文件,在view目录中添加视图文件,并在model目录中添加模型文件(如果需要的话)。现在,你可以通过访问http://your-domain/NewModule/index/index来访问这个控制器方法,它将输出Hello, World!2. 执行上述命令后,会在应用的module目录下创建一个名为NewModule的目录,并生成相应的模块文件结构。在模块目录中创建相应的文件和目录。

2024-05-06 11:07:39 329

原创 JavaScript 上次访问的url

请注意,如果你的网站部署在不同的源(origin),例如从http://example.com跳转到https://example.com,document.referrer可能会因为协议安全性(protocol safety)被浏览器丢弃,这时你可能无法获取到正确的referrer。这个属性只有在通过链接或者脚本跳转到当前页面的情况下才会有值,如果是通过直接输入地址访问的,或者是页面刷新,那么这个属性的值将会是空字符串。

2024-04-30 09:42:50 259 1

原创 uniapp 判断平台

如上代码只会编译到 H5 的发行包里,其他平台的包不会包含如上代码。如有必要,也可以在条件编译里自己定义一个变量,赋不同值。在后续运行代码中动态判断环境。console.log('运行Android上');console.log('运行在开发者工具上');console.log('运行iOS上');alert('只有h5平台才有alert方法');一种是在编译期判断,一种是在运行期判断。平台判断有 2 种场景,

2024-04-23 14:42:37 234

原创 uinapp 开发环境和生产环境

uni-app 可通过 process.env.NODE_ENV 判断当前环境是开发环境还是生产环境。一般用于连接测试服务器或生产服务器的动态切换。console.log('开发环境');console.log('生产环境');

2024-04-23 14:35:10 344

原创 windows10小皮安装不同版本composer,实现自由切换使用

1、使用phpstudy小皮面板安装composer1.8.5和composer2.5.8两个版本;2、打开刚才安装的composer安装目录:D:\phpstudy_pro\Extensions。

2024-04-18 10:28:24 601

原创 Scrapy设置随机User-Agent

大多数情况下,网站都会根据我们的请求头信息来区分你是不是一个爬虫程序,如果一旦识别出这是一个爬虫程序,很容易就会拒绝我们的请求,因此我们需要给我们的爬虫手动添加请求头信息,来模拟浏览器的行为,但是当我们需要大量的爬取某一个网站的时候,一直使用同一个User-Agent显然也是不够的,因此,我们本节的内容就是学习在scrapy中设置随机的User-Agent。而后,在middlewares.py文件中添加如下的信息,这也是我们设置User-Agent的主要逻辑,先上代码再解释。到这里,全部的设置就算完成了,

2024-04-17 13:54:10 1611

原创 Scrapy 中 SPIDER_MIDDLEWARES 和 DOWNLOADER_MIDDLEWARES 的区别

- 下载中间件用于操作向互联网发起请求的request和返回的response,比如修改请求头、修改响应、管理cookies、丢弃非200状态码响应、丢弃非指定域名请求等;-- 一般用于操作 spider 返回的request,比如记录深度、丢弃非200状态码响应、丢弃非指定域名请求等;-- 蜘蛛中间件一般不需要自己编写,使用内置的几个也足够了;1. 下载中间件的方法。2. 蜘蛛中间件的方法。

2024-04-17 10:26:39 404

原创 Python:将CURL并一键转为python爬虫代码

Curl转其他语言:https://curlconverter.com/

2024-04-16 18:22:18 1185

原创 javascript 统计按钮点击量

要实现计算按钮被点击的次数,我们可以借助JavaScript中的事件监听器。事件监听器可以帮助我们捕获用户在网页上的各种操作,如点击按钮、输入文本等。通过监听按钮的点击事件,我们可以在每次点击时进行相应的操作,例如增加点击计数。如果页面上存在多个按钮,我们可以为每个按钮创建一个计数器,并在相应的事件监听器中进行操作,以区分不同按钮的点击次数。

2024-04-16 16:10:54 433

原创 php 获取客户端的真实ip地址

在PHP中,可以通过检查一些常见的HTTP头部字段来尝试获取客户端的真实IP地址,但需要注意的是,由于HTTP头部可以被客户端伪造,因此这种方法并不总是可靠。此外,如果有多个IP地址在X-Forwarded-For头部中传递,这个方法只能获取到第一个IP地址,这通常是最直接的客户端IP。接下来,它检查HTTP_X_FORWARDED_FOR,这是一个标准的HTTP头部字段,用于表示通过HTTP代理或负载均衡器转发的原始客户端IP地址。

2024-04-16 15:42:44 398 1

原创 php 如何获取用户在当前页面的停留时间

url: 'your_server_script.php', // 服务器端处理停留时间的PHP脚本的URL。data: { stayTime: stayTime }, // 将停留时间作为数据发送到服务器。// 计算停留时间(毫秒)要获取用户在当前页面的停留时间,你可以使用PHP结合JavaScript来实现。当用户离开页面时,使用JavaScript计算停留时间,并通过AJAX或其他方式将该时间发送到服务器。// 例如使用jQuery的$.ajax()方法。// 使用AJAX将停留时间发送到服务器。

2024-04-16 15:36:29 650

原创 nginx 设置跨域

在这个配置中,我们设置了 Access-Control-Allow-Origin 为 *,允许所有来源的跨域请求。同时,也设置了允许的方法 Access-Control-Allow-Methods 为 GET, POST, OPTIONS。在 Nginx 中设置跨域,可以在 server 配置块中添加相应的 add_header 指令。确保在配置文件中适当地设置这些指令,并在必要时重载或重启 Nginx 以应用更改。nginx 设置跨域。

2024-03-27 14:11:01 559

原创 JavaScript变量提升机制

在JavaScript中,变量提升(Hoisting)是指声明变量时,变量的声明会被提升到其作用域的顶部,但赋值不会被提升。1. JavaScript的变量提升是针对var的,而let和const不存在变量提升这一特性(let与const具有一个临时死区的概念,后续在es6的总结中会提到)3.变量提升就是变量会被提升到作用域的最顶上去,也就是该变量不管是在作用域的哪个地方声明的,都会提升到作用域的最顶上去。包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理,这种现象称为提升。

2024-03-21 09:23:50 339

原创 JS的var和let、const使

在块作用域中两者的区别较为明显, let只在for()循环中可用,而 var是对于包围for循环的整个函数可用。var声明的变量在变量声明之前就可以使用,而let声明的变量只有在变量声明之后才能使用。但是,被let声明的变量不会作为全局对象window的属性,而被var声明的变量却可以。var是ES5标准中声明变量的方式,而let是ES6标准中新增的声明变量的方式。var声明的变量是函数作用域或全局作用域,而let声明的变量是块级作用域。// 函数作用域中的变量。// i 对于for循环外的范围是可见的。

2024-03-20 17:38:13 396

原创 js 闭包

定义在最外层作用域的变量是全局变量,定义在函数内部的变量称为局部变量,由于 JavaScript 的特性,外层的函数无法访问内部函数的变量;在这段代码中,当函数fn1执行并将函数fn2返回后,闭包使得Javascript的垃圾回收机制不会收回函数fn1里num变量所占用的资源(不会被销毁),因为fn1的内部函数fn2的执行需要依赖num变量,所以就出现了每次调用result,num就会自增一。在js中,只有函数内部的子函数才能访问到局部变量,所以,闭包可以理解为"定义在一个函数内部的函数"。

2024-03-20 15:30:12 366

原创 uniapp html变量 直接输出html

这是<b>HTML</b>内容

2024-03-15 17:44:30 726

植物大战僵尸小游戏JavaScript版

植物大战僵尸小游戏JavaScript版

2024-02-28

空空如也

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

TA关注的人

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