Nginx重写功能
目录
一 . 简介
二. if指令
2.1基本语法
2.2 举例说明
2.3 配置实例
三. return
3.1 基本语法
3.2 配置实例
四. set指令
4.1 基本语法
4.2 举例说明
4.3 配置实例
五.break指令
5.1 作用
5.2 举例说明
5.3 配置实例
六.rewrite指令
6.1 基本语法
6.2 配置实例
6.2.1 重写ULR路径
6.2.2 域名重定向
6.2.3 http 转https
七. 防盗链
7.1 盗链的定义
7.2 防盗链的简介
7.3 实现盗链
一 . 简介
Nginx 的重写功能是指通过修改请求 URL 的方式来实现URL重定向或者路由转发的功能。
Nginx通过 ngx_http_rewrite_module
模块来实现重写功能。
重写功能的重要作用
它可以在我们改变网站结构之后,不需要客户端修改原来的书签,也无需其他网站修改我们的链接,就可以设置为自动访问,另外还可以在一定程度上提高网站的安全性。
二. if指令
Nginx 的 if
指令可以在配置中实现条件判断,可以配置在server或location块中。
2.1基本语法
if (条件匹配) { action
}
使用正则表达式对变量进行匹配,匹配成功时if指令认为条件为true,否则认为false。
变量与表达式之间使用以下符号链接
= #比较变量和字符串是否相等,相等时if指令认为该条件为true,反之为false
!= #比较变量和字符串是否不相等,不相等时if指令认为条件为true,反之为false
~ #区分大小写字符,可以通过正则表达式匹配,满足匹配条件为真,不满足匹配条件为假
!~ #区分大小写字符,判断是否匹配,不满足匹配条件为真,满足匹配条件为假~* #不区分大小写字符,可以通过正则表达式匹配,满足匹配条件为真,不满足匹配条件为假
!~* #不区分大小字符,判断是否匹配,满足匹配条件为假,不满足匹配条件为真-f 和 !-f #判断请求的文件是否存在和是否不存在
-d 和 !-d #判断请求的目录是否存在和是否不存在
-x 和 !-x #判断文件是否可执行和是否不可执行
-e 和 !-e #判断请求的文件或目录是否存在和是否不存在(包括文件,目录,软链接)
注意:
如果$变量的值为空字符串或0,则if指令认为该条件为false,其他条件为true。
nginx 1.0.1之前$变量的值如果以0开头的任意字符串会返回false。
2.2 举例说明
#想匹配 /blog/archive 后跟特定前缀year-
location /blog/archive {rewrite ^/blog/archive/year-(.*)$ /blog/posts/year-$1 permanent;
}访问 http://example.com/blog/archive/year-2023 会被重定向到 http://example.com/blog/posts/year-2023。
访问 http://example.com/blog/archive/month-10 不会被重定向。
2.3 配置实例
#确认/apps/nginx/html/test文件和目录存在
mkdir -p /apps/nginx/html/test
echo "Hello, this is /test" > /apps/nginx/html/test/index.html#编辑主配置文件
vim /apps/nginx/conf/nginx.conflocation /test {index index.html;default_type text/html;if ( $scheme = http ){echo "if-----> $scheme";} #进行协议判断,是不是httpif (!-e $request_filename) {echo "$request_filename is not exist";}#判断文件是否存在/apps/nginx/sbin/nginx -t/apps/nginx/sbin/nginx -s reload
三. return
3.1 基本语法
return用于完成对请求的处理,并直接向客户端返回响应状态码。
return code; #返回给客户端指定的HTTP状态码return code [text]; #返回给客户端的状态码及响应报文的实体内容,可以调用变量,其中text如果有空格,需要用单或双引号return code url; #返回给客户端的URL地址 301 客户机访问服务器时,服务器会将跳转缓存到客户机中,下次跳转就不需要服务器,从客户机本地缓存调取。
302 临时
3.2 配置实例
vim /apps/nginx/conf/nginx.conflocation /test {index index.html;default_type text/html;if (!-e $request_filename) {return 302 /index.html;}
}#访问一个不存在的文件curl http://192.168.52.102/test/nonexistent -I
注意:if
指令在 Nginx 中具有以下副作用:
- 破坏
location
的上下文。 - 导致性能问题。
- 干扰其他指令。
- 导致难以调试的问题。
(所以配置实例只用了一个if)
四. set指令
set 指令用于创建或更改一个变量的值,即自定义变量。
4.1 基本语法
set $variable value;$variable:变量名,必须以 $ 开头。
value:变量的值,可以是字符串、变量或表达式
4.2 举例说明
创建一个变量并赋予一个静态值:
set $my_var 'Hello, World!';将已有的变量的值赋给新的变量
set $new_var $existing_var;使用表达式给变量赋值
set $num 10;
set $result $num * 2;
4.3 配置实例
mkdir -p /apps/nginx/html/work
echo "Hello, this is /work" > /apps/nginx/html/work/index.html#配置文件中修改
vim /apps/nginx/conf/nginx.conflocation /work {root /data/nginx/html/pc;index index.html;default_type text/html;set $name dhf;echo $name;
}curl 192.168.52.102/work
五.break指令
5.1 作用
break
指令用于中断当前请求的处理,并立即终止对该请求的后续处理过程。
-
当 Nginx 遇到 .break 指令时,会立即停止当前的重写规则处理,不再继续执行后续的重写规则。
-
break 会保留当前的重写结果,并将其作为最终的 URL,避免循环重写。
-
使用 break 可以避免重写规则进入无限循环。
5.2 举例说明
location /example {if ($arg_param = "value") {# 条件满足,中断请求处理break;}# 继续处理请求...
}
5.3 配置实例
#配置文件中添加location /work {default_type text/html;set $name "dhf";echo $name;break;set $n_name "2025-5-10";echo $n_name;
}curl 192.168.52.102/work
六.rewrite指令
6.1 基本语法
rewrite regex replacement [flag];regex:正则表达式,用于匹配请求的 URL。
replacement:替换后的 URL 或路径。
flag:可选参数,用于指定重写的行为。
regex 部分 (正则表达式)
. #匹配除换行符以外的任意字符
\w #匹配字母或数字或下划线或汉字
\s #匹配任意的空白符
\d #匹配数字 [0-9]
\b #匹配单词的开始或结束
^ #匹配字符串的开始
$ #匹配字符串的结束
* #匹配重复零次或更多次
+ #匹配重复一次或更多次
? #匹配重复零次或一次
{n} #匹配重复n次
{n,} #匹配重复n次或更多次
{n,m} #匹配重复n到m次
*? #匹配重复任意次,但尽可能少重复
+? #匹配重复1次或更多次,但尽可能少重复
?? #匹配重复0次或1次,但尽可能少重复
{n,m}? #匹配重复n到m次,但尽可能少重复
{n,}? #匹配重复n次以上,但尽可能少重复
\W #匹配任意不是字母,数字,下划线,汉字的字符
\S #匹配任意不是空白符的字符
\D #匹配任意非数字的字符
\B #匹配不是单词开头或结束的位置
[^x] #匹配除了x以外的任意字符
[^kgc] #匹配除了kgc 这几个字母以外的任意字符
常见的 flag 包括
last:停止处理当前 rewrite 指令,并重新匹配新的 URL。break:停止处理当前 rewrite 指令,不再匹配其他规则。redirect:返回 302 临时重定向。permanent:返回 301 永久重定向。
6.2 配置实例
6.2.1 重写ULR路径
#修改主配置文件
vim /apps/nginx/conf/nginx.conf#再location / 添加
rewrite ^/bj/(.*) /beijing/$1 permanent;#建立测试文件夹和主页
cd /apps/nginx/html
mkdir bj ;echo This is bj > bj/index.html
mkdir beijing;echo This is Beijing > beijing/index.html/apps/nginx/sbin/nginx -t/apps/nginx/sbin/nginx -s reloadcurl 192.168.52.102/bj -L
6.2.2 域名重定向
vim /apps/nginx/conf/nginx.confserver {
listen 80;
server_name localhost;
root /apps/nginx/html;
location / {
rewrite / https://www.baidu.com permanent;}
}/apps/nginx/sbin/nginx -t/apps/nginx/sbin/nginx -s reload
6.2.3 http 转https
(详细过程同自签名证书)
vim /apps/nginx/conf/nginx.confserver {listen 443 ssl;listen 80;server_name www.kgc.org;ssl_certificate /apps/nginx/certs/www.kgc.org.crt;ssl_certificate_key /apps/nginx/certs/www.kgc.org.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;location / { #针对全站跳转root /data/nginx/html/pc;index index.html;if ($scheme = http ){ #如果没有加条件判断,会导致死循环rewrite / https://$host redirect;} }location /login { if ($scheme = http ){ #如果没有加条件判断,会导致死循环rewrite / https://$host/login redirect;}}
}
# 创建证书目录(如果不存在)
mkdir -p /zs/# 上传或生成证书文件到 /zs/
# cp your_cert.crt /zs/www.kgc.com.crt
# cp your_key.key /zs/www.kgc.com.key# 创建网站根目录及默认页面
mkdir -p /data/nginx/html/pc/
echo "<h1>Welcome to www.dhf.com</h1>" | sudo tee /data/nginx/html/pc/index.html# 设置权限(确保 Nginx 用户可读)
chown -R nginx:nginx /data/nginx/html/ /zs/
chmod 600 /zs/www.kgc.com.key # 私钥必须严格限制权限
七. 防盗链
7.1 盗链的定义
指第三方网站通过(如<img>、<video>标签或文件链接)直接嵌入使用目标网站的服务器资源,导致目标服务器带宽、计算资源被无偿消耗。
7.2 防盗链的简介
在Nginx中实现防盗链主要通过验证HTTP请求的Referer
头,确保资源仅允许特定来源访问。
核心指令:valid_referers
#基础语法
valid_referers none | blocked | server_names | string ...;none:允许无Referer的请求(如直接访问)。blocked:允许Referer被防火墙或代理删除的请求。server_names:允许来自指定域名的请求(支持通配符和正则)。string:可自定义字符串,支配通配符、正则表达式写法。
7.3 实现盗链
实验步骤如下
第一台虚拟机
vim /apps/nginx/conf.d/computer.conf
#添加内容
location ~* \.(jpg|gif|swf)$ { root /data/nginx/html/pc;valid_referers none blocked *.dhf.com dhf.com; if ( $invalid_referer ) {rewrite ^/ http://www.dhf.com/error.png;#return 403}}
#用于测试的图片
cd /data/nginx/html/pc/
在此目录在放入 a.jpg 和 error.png
第二台虚拟机
cd /usr/share/nginx/htmlvim index.html<html>
<body>
<h1>this is dhf </h1>
<img src="http://www.dhf.com/a.jpg"/>
</body>
</html>
#修改主配置文件
vim /apps/nginx/conf/nginx.conf#41行修改
server_name www.accp.com;
修改windows的本地hosts文件,添加映射关系
#进行测试www.dhf.comwww.accp.com
相关文章:
Nginx重写功能
目录 一 . 简介 二. if指令 2.1基本语法 2.2 举例说明 2.3 配置实例 三. return 3.1 基本语法 3.2 配置实例 四. set指令 4.1 基本语法 4.2 举例说明 4.3 配置实例 五.break指令 5.1 作用 5.2 举例说明 5.3 配置实例 六.rewrite指令 6.1 基本语法 6.2 配…...
2025-05-11 项目绩效域记忆逻辑管理
好的,我们可以用一个故事来帮助记忆这些规划绩效域的要素,同时通过逻辑关系来串联它们。以下是一个故事化的版本: 《项目管理的奇幻之旅》 在一个遥远的王国里,有一个勇敢的项目经理名叫小K。小K被国王赋予了一个艰巨的任务&…...
全模态具身智能:从 VLM 到 MLLM
写在前面 人工智能的感知边界正在以前所未有的速度扩展。最初,我们惊叹于大型语言模型(LLM)对文本的深刻理解和流畅生成。很快,视觉语言模型(Vision-Language Models, VLM) 登场,让 AI 第一次真正“看见”了世界,能够理解图像内容并将其与语言关联,实现了“看图说话”…...
C++入门小馆: 二叉搜索树
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…...
C++.IP协议通信
C++IP协议通信 1. TCP协议通信1.1 服务端实现创建套接字绑定地址监听连接接受连接数据传输关闭连接1.2 客户端实现创建套接字连接服务器数据传输关闭连接1.3 示例代码服务端代码示例客户端代码示例绑定地址接收数据发送数据关闭套接字2.2 客户端实现创建套接字发送数据接收数据…...
虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框
虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框1. 退出编辑器时弹出的“Save Content”窗口2. File 菜单中的保存选项3. 区别总结 1. 退出编辑器时弹出的“Save Content”窗口 退出时…...
【KEIL】更新AC6编译器
看过部分的文章,Arm Compiler 6(AC6)编译器,相比AC5在编译速度和代码优化上提升了。因此,笔者决定升级到AC6的最新版本。可以更新keil5到最新版本,上面集成AC6编译器的版本,与最新版相差不远。假…...
Mosquitto MQTT库实战指南
目录 1. MQTT协议简介2. Mosquitto概述3. 开源MQTT实现对比4. 为什么选择Mosquitto5. Mosquitto的交叉编译6. MQTT发布订阅实战7. 进阶应用与最佳实践8. 总结 1. MQTT协议简介 MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻…...
C语音学习---函数指针
目录 1. 函数指针解析 2. 自定义实现(函数指针赋值) 利用下面一段例子来解析: int (*set_slave)(modbus_t *ctx, int slave); 1. 函数指针解析 set_slave 是一个 函数指针,指向一个函数。 该函数接受两个参数: mo…...
04.three官方示例+编辑器+AI快速学习webgl_animation_skinning_additive_blending
本实例主要讲解内容 这个示例展示了Three.js中**骨骼动画的叠加混合(Additive Animation Blending)**技术。通过加载一个机器人模型,演示了如何在基础动画(如站立、行走、跑步)之上叠加额外的动画效果(如潜行姿态、悲伤表情、点头同意等),实现更丰富的角…...
WSL配置docker启动nacos容器load derby-schema.sql error.问题解决方案
nacos配置问题 问题再现查看错误logsQWEN的解答不挂载/data结论 问题再现 本来想要本地跑一下nacos,之前都是直接在Linux环境下面,现在就使用windows的wsl跑一下nacos,之前是需要先配置/conf文件下面的porperties文件以及构建对应的nacos-config数据库。所以我使用…...
游戏引擎学习第272天:显式移动转换
回顾并为今天的内容铺垫背景 我们刚开始为游戏主角编写一些程序逻辑,因为我们之前已经完成了大部分引擎方面的开发,现在可以专注在角色身上。这个角色的移动方式会有些特别,与大多数游戏角色的运动机制不太一样。我们当前正在实现的控制方式…...
AVL树解析
插入操作 // 插入操作 bool insert(const pair<K, V>& kv) {// 若树为空,直接构造,new一个if (_root nullptr) {_root new Node(kv);return true;}// 用于遍历树的当前节点Node* cur _root;// 用于记录当前节点的父节点Node* parent n…...
vue 中的数据代理
在 Vue 中,数据代理(Data Proxy) 是 Vue 实现 MVVM 模式 的关键技术之一。Vue 使用数据代理让你可以通过 this.message 访问 data.message,而不需要写 this.data.message —— 这大大简化了模板和逻辑代码。 我们来深入理解它的本…...
Linux共享内存深度解析:从内核机制到云原生应用
引言:超越进程边界的内存魔术 在Linux系统的进程间通信(IPC)领域,共享内存(Shared Memory)如同魔法镜子般的存在——不同进程透过它看到相同的内存镜像。这种机制摒弃了数据拷贝,直击性能瓶颈&…...
Vue Router全局拦截
Vue Router全局拦截全攻略 一、为什么需要全局拦截? 最近在开发后台管理系统时,突然发现所有页面都需要登录才能访问。如果每个页面都手动检查登录状态,那代码简直要写成意大利面条了。这时候,Vue Router的全局拦截功能就像个贴…...
从0开始学linux韦东山教程第三章问题小结(3)
本人从0开始学习linux,使用的是韦东山的教程,在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。说实在的越看视频越感觉他讲的有点乱后续将以他的新版PDF手册为中心,视频作为辅助理解的工具。参考手册为嵌入式Linux应用开发…...
【前端】【css】【总复习】三万字详解CSS 知识体系
🌈 CSS 知识体系目录大纲 一、基础知识入门 1. CSS 简介与作用 CSS(Cascading Style Sheets,层叠样式表)是一种用于给 HTML 页面添加样式的语言,作用是让网页更美观、结构更清晰、布局更灵活。 核心作用: 控制网页元素的 颜色、字体、间距、边框、背景布局网页元素位置…...
Linux 进程等待
1、进程等待 僵尸进程 是一个比较麻烦的问题,如果不对其做出处理,僵尸进程 就会越来越多,导致 内存泄漏 和 标识符 占用问题 进程一旦变成僵尸状态,那就刀枪不入,“杀人不眨眼”的kill -9 也无能为力,因为…...
轻量服务器与宝塔
因为访问宝塔面板是需要在安全组设置一下开放端口,比如这里是42450 但是我们用的轻量服务器是把安全组这种功能削减了的,所以我就去尝试修改了一下防火墙设置 然后就可以访问了...
深入理解AMBA总线(六)AHB-lite Slave响应和其它控制信号
上一篇文章给大家介绍了AHB-lite的一些控制信号,重点是通过这些控制信号去理解AHB-lite为什么这么设计,采用这些控制信号有什么好处。这节课给大家带来剩余的一些控制信号介绍。 ** 1、Slave Response Signaling ** 1.1、Slave Transfer Responses …...
app加固
1、什么是加固? 我们之前讲的逆向,大多数都是用加密算法去加密一些明文字符串,然后把得到的结果用 Base64、Hex等进行编码后提交。加固其实也一样,只不过他通常加密的是 dex文件而已。但是 dex 文件加密以后,安卓系统是没法直接运行的。所以加固的核心&…...
Linux架构篇、第三章_2_Linux服务器监控与NGINX优化
Linux_架构篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目: 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.11 适用环境: Centos7 文档说明 本文围绕 Linux 服务器监控与 NGINX 优化展开。介绍了 sysst…...
第26节:卷积神经网络(CNN)-数据增强技术(PyTorch)
1. 引言 在深度学习领域,数据增强(Data Augmentation)是提升卷积神经网络(CNN)性能的关键技术之一。通过人为地扩展训练数据集,数据增强能够有效提高模型的泛化能力,防止过拟合,特别是在训练数据有限的情况下。本文将全面介绍PyTorch框架下的数据增强技术,包括基本原理、…...
架构思维:通用架构模式_怀疑下游的设计思路与最佳实践
文章目录 1. 引言2. 为什么要“怀疑下游”3. 三大类下游依赖及应对方案3.1 对其他微服务的依赖3.1.1 分布式事务简易补偿方案3.2 对数据库的依赖3.3 对消息中间件的依赖 4. 分布式事务实战案例5. 小结 1. 引言 在 架构思维:通用架构模式_从设计到代码构建稳如磐石的…...
[Java实战]Spring Boot 中Starter机制与自定义Starter实战(九)
[Java实战]Spring Boot 中Starter机制与自定义Starter实战(九) 引言 Spring Boot 的 Starter 是其“约定优于配置”理念的核心体现,通过简化依赖管理和自动配置,极大提升了开发效率。本文将深入剖析 Starter 的设计思想、实现原…...
C++23 views::repeat (P2474R2) 深入解析
文章目录 引言C20 Ranges库回顾什么是Rangesstd::views的作用 views::repeat概述基本概念原型定义工作原理应用场景初始化容器模拟测试数据 总结 引言 在C的发展历程中,每一个新版本都会带来一系列令人期待的新特性,这些特性不仅提升了语言的性能和表达…...
【第三十五周】Janus-pro 技术报告阅读笔记
Janus-Pro 摘要Abstract文章信息引言方法Janus 架构Janus 训练Janus-Pro 的改进 实验结果总结 摘要 本篇博客介绍了Janus-Pro,这是一个突破性的多模态理解与生成统一模型,其核心思想是通过解耦双路径视觉编码架构解决传统方法中语义理解与像素生成的任务…...
基于Qt的app开发第七天
写在前面 笔者是大一下计科生,标题这个项目是笔者这个学期的课设,与学长共创,我负责客户端部分,现在已经实现了待办板块的新建、修改。 这个项目目前已经走上正轨了,博主也实现了主要功能的从无到有ÿ…...
第二十二节:图像金字塔-拉普拉斯金字塔
在数字图像处理的奇幻世界中,存在着一种能够连接不同视觉维度的神秘阶梯——图像金字塔。这种独特的结构让计算机视觉算法能够在不同尺度下观察和理解图像特征,而其中的拉普拉斯金字塔更是隐藏着图像细节重构的终极奥秘。 一、金字塔的数学基础:从高斯到拉普拉斯 1.1 高斯金…...
Flutter基础()
导航栏 appBar: AppBar() title: const Text(搜索) //标题 backgroundColor: Colors.blue //背景颜色 centerTitle: true //标题居中leading 属性 作用: 放置在应用栏左侧的控件,通常是一个图标按钮,用于导航或打开菜单。 AppBar(le…...
ES面试题系列「一」
1、Elasticsearch 是什么?它与传统数据库有什么区别? 答案:Elasticsearch 是一个基于 Lucene 的分布式、开源的搜索和分析引擎,主要用于处理大量的文本数据,提供快速的搜索和分析功能。与传统数据库相比,E…...
Oracle 通过 ROWID 批量更新表
Oracle 通过 ROWID 批量更新表 在 Oracle 数据库中,使用 ROWID 进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销。 ROWID 基本概念 ROWID 是 Oracle 数据库中每一行的唯一物理地址标识符ÿ…...
罗技无线鼠标的配对方法
罗技鼠标的配对方法: 重新连接鼠标 请按照以下步骤将鼠标与 USB 接收器重新配对。 1.将USB接收器插入计算机。 2.将鼠标关闭电源。 3.按住并持续按住向右按钮,直到操作结束。 4.切换鼠标电源。 5. 单击一次左侧按钮。 6. 单击一次中间按钮。 7.全部松开&…...
移动应用开发的六大设计原则
在移动应用开发中,遵循设计原则能大幅提升代码的可维护性和扩展性。本文以一个简单的学生管理系统为例,解析六大核心设计原则的实践方法。 1. 单一职责原则 优点: 提高可维护性:一个类只负责一项职责,代码的功能会更…...
LLM初识
从零到一:用 Python 和 LLM 构建你的专属本地知识库问答机器人 摘要: 随着大型语言模型(LLM)的兴起,构建智能问答系统变得前所未有的简单。本文将详细介绍如何使用 Python,结合开源的 LLM 和向量数据库技…...
【CTF】Linux Shell RCE绕过(bypass)技术总结
在Linux环境下,远程代码执行(RCE,Remote Code Execution)是一种常见的攻击手段。然而,许多系统会对命令注入进行过滤或限制,例如禁止特定关键字(如system)、斜杠(/&#…...
深入理解 Linux 权限控制机制
引言 在 Linux 系统中,权限控制是保障系统安全的核心机制。通过限制用户对文件和资源的访问,它能有效防止未授权操作,保护数据不被篡改或泄露。合理设置权限不仅有助于实现用户隔离和最小权限原则,还能降低系统被滥用或攻击的风险…...
技术书籍推荐(002)
20. 利用Python进行数据分析 免费 电子书 PDF 下载 书籍简介: 本书聚焦于使用Python进行数据处理和分析。详细介绍了Python中用于数据分析的重要库,如NumPy(提供高效的数值计算功能,包括数组操作、数学函数等)、panda…...
[SAP] SAP ERP用户参数设置
菜单路径 个人默认值的设置(数值,日期,时间) 个人参数值的设置 在给参数设置参数值后,当用户登录到对应功能页面时,这些参数值就会自动带出来 例如,我们分别对上述AAT,VKO以及VTW这3个参数设置了参数值&am…...
Python中,async和with结合使用,有什么好处?
在Python的异步编程中,async和with的结合使用(即async with)为开发者提供了一种优雅且高效的资源管理模式。这种组合不仅简化了异步代码的编写,还显著提升了程序的健壮性和可维护性。以下是其核心优势及典型应用场景的分析&#x…...
【信息系统项目管理师】第3章:信息系统治理 - 29个经典题目及详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...
python实战项目69:基于Python爬虫的链家二手房数据采集方法研究
python实战项目69:链家二手房数据采集 一、项目需求1.1 房地产数据价值1.2 传统数据获取局限性1.3 技术可行性二、数据采集流程2.1 需求分析2.2 网页结构分析2.3 请求发送与反爬策略2.4 数据解析2.5 数据存储三、结论与展望四、完整代码一、项目需求 本文针对房地产数据分析需…...
PowerShell 脚本中文乱码处理
问题描述 脚本带中文,执行时命令行窗口会显示出乱码 示例 Write-Host "测试成功!"解决方法 问了DeepSeek,让确认是不是 UTF8 无 BOM 格式 事实证明方向对了 但是确认信息有偏差 改成 UTF8 with BOM 使用任意支持修改编码的文本…...
SpEL(Spring Expression Language)使用详解
SpEL(Spring Expression Language)是 Spring 框架中一种强大的表达式语言,支持在运行时动态查询和操作对象图。它与 Spring 生态深度集成,广泛应用于依赖注入、数据绑定、AOP、安全规则等场景。以下是其核心语法、应用场景及使用示…...
论文阅读与写作:《从探索到突破:解密科研和论文写作的思维密码》
文章目录 一、如何做科研1.科研的步骤2.课题选择3.快速入门一个新领域:读论文,先读综述(1)自己看论文的时候,每篇论文花3-5分钟记录一下自己的idea和一些瞬间的想法(2)高质量文献:顶会顶刊(3)如何检索 4.注重团队协作与学术交流5.…...
免费公共DNS服务器推荐
当自动获取的DNS或本地运营商的DNS出现问题,可能导致软件无法连接服务器。此时,手动修改电脑的DNS设置或许能解决问题。许多用户觉得电脑上网速度慢、游戏卡顿,归咎于DNS问题。确实,我们可以自行设置一个DNS来改善网络体验。不少用…...
CK-S650-PA60S半导体专用读写器|读写头与绿联RS232串口转接头联机测试说明
CK-S650-PA60S半导体专用读写器|读写头是一款国产替代欧姆龙V640系列,支持德州仪器公司(TI)制造的RI-TRP-DR2B、RI-TRP-WR2B-40低频玻璃管标签|射频标签读写,广泛应用半导体硅片盒、晶圆盒、花篮等RFID插件识别与产品追溯领域。 CK-S650-PA60S半导体专用…...
Babel 基础使用指南:从安装到编译的完整流程
Babel 是当今前端开发中不可或缺的工具,它允许开发者使用最新的 JavaScript 特性,同时确保代码能在各种浏览器和环境中运行。本文将带你从零开始学习 Babel 的基础使用,涵盖安装、配置到实际编译的全过程。 1. 安装 Babel 和插件 首先&…...
uniapp-商城-52-后台 商家信息(商家信息数据,云对象使用)
1、概述 已经通过好几个篇幅来说明商家信息,包括logo、商家名称,地址,电话以及商家简介。通过表单组件和标签,以及我们的文件上传标签,都做了说明。(logo上传,用的文件上传组件是上传到公共的数…...