当前位置: 首页 > news >正文

【玩转全栈】----Django模板语法、请求与响应

目录

一、引言

二、模板语法

三、传参

1、视图函数到模板文件

2、模板文件到视图函数

四、引入静态文件

五、请求与响应

?1、请求

2、响应

六、综合小案例

1、源码展示

2、注意事项以及部分解释

3、展示


一、引言

像之前那个页面,太过简陋,而且一个完整的页面,也不可能只用HttpResponse返回文本,这就可以用django的模板语法,模板语法相当于将前后端分离了,前端专写页面,写成一个html文件,然后后端在视图函数中可以通过渲染(render)将前端的html文件渲染为HTTP响应。

app文件目录如下:

app01
│ ├─migrations
│ │ └─__pycache__
│ ├─static
│ │ ├─css
│ │ ├─img
│ │ ├─js
│ │ └─plugins
│ ├─templates
│ └─__pycache__
└─myproject
└─__pycache__

static文件夹用来存放静态文件,包括样式css,图片img,网页的js和插件plugins

而templayes是用来存放模板的,一些编写的html文件通常存放于此

二、模板语法

模板语法如何实现呢,其实很简单,首先得创建一个html文件,对网页进行设计,然后在视图函数中进行返回即可。

新建html文件:

此文件即可和前端联系起来,可以在这儿简单写个页面

<h2>展示</h2>

配置路径

path("show/", views.show_1),

在视图函数中返回该页面

def show_1(request):return render(request, 'show_1.html')

返回页面是用的render,第二个参数就是要显示的html文件

启动项目后显示了“展示”,当然,有前端基础的同学就可以尽情发挥,设计一个更加完善的页面

基本功能

返回指定内容作为 HTTP 响应

渲染模板文件并返回包含动态内容的 HTTP 响应

返回一个 HTTP 重定向响应,将用户跳转到另一个 URL

常用场景

用于返回简单的字符串、HTML 或其他内容

用于返回包含动态页面的完整 HTML 响应

用于重定向用户到其他页面(如成功后的跳转)

返回内容类型

文本、HTML、JSON 或其他任意内容

渲染后的 HTML 内容

重定向响应,浏览器跳转到目标 URL

函数参数

内容(如字符串或 HTML 代码)

request、模板文件路径、上下文数据(字典)

URL 名称、URL 路径或视图名称

返回对象

HttpResponse 对象

HttpResponse 对象(经过模板渲染的 HTML)

HttpResponseRedirect 对象

三、传参

模板文件和视图函数可以进行相互传参,主要通过 上下文数据(Context) 进行传递。以下是详细说明:

1、视图函数到模板文件

视图函数传参到模板文件只需添加一个context参数即可,并返回,context数据可包括一般的数据类型(字符串、数字、布尔值等),也可传一些储存数据的结构,比如列表、字典等等.

记得在render渲染器中加入context参数

def show_1(request):list = [1,2,3,4,5]dict = {'name':'zhang','age':23,'from':'China'}context = {"name":"小谭","age":18,"ishandsome":True,"list":list,"dict":dict}return render(request, 'show_1.html', context)

在模板文件中接收到的参数,可用{{ }}显示到页面上,字典用key值索引,列表用整数索引取值,对于列表和字典的循环索引,可以使用模板文件中的for循环。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h2>展示</h2>
<h2>姓名:{{name}},年龄:{{age}},帅不帅?{{ishandsome}}的</h2>
<div>{% for item in list %}<h1>{{item}}</h1>{% endfor %}
</div><ul>{% for k,v in dict.items %}<li>{{k}}={{v}}</li>{% endfor %}
</ul>
</body>
</html>

页面结果:

2、模板文件到视图函数

在定义视图函数时的参数requests其实是一个对象,内容包括用户发送网络请求后的一些信息,比如用户填写的表单等等。

这里我们新配置一个登录的url进行演示

#添加路径
path("login/", views.login),#定义视图函数
def login(request):return render(request, 'login.html')

写一个简单的表单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>用户登录</h1>
<form action="/login/" method="post">#{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="password" name="pwd" placeholder="密码"><input type="submit" value="提交"/>
</form>
</body>
</html>

启动项目,随便输入一点数据

提交后会出现如下错误:

这是django独有的安全检测,解决方法也很简单,只需在代码块中添加这个:

{% csrf_token %}

加了之后右键检查网页源代码(或按F12),发现表单中多了一长串value,这一串码是django内部用来校验是否是正常我的网页发过来的,django会自动读取,这样就可以跳过django的安全检测。

在视图函数中编写代码,以接收并测试传送数据,因为是表单提交,所以是POST请求

def login(request):if request.method == 'POST':print(request.POST)return render(request, 'login.html')

在网页中输入数据并提交,发现控制台会打印出刚才表单输入的数据,这其实就是requests请求的参数。

还可以通过取值获取到这些具体的参数

username = request.POST['user']
password = request.POST['pwd']

四、引入静态文件

之前讲过一般只需要创建一个应用(app),但如果创建了多个应用,不可能每个应用创建一个templates,一般是整个Django项目共用一个templates,所以会在settings文件中进行配置,以让所有应用能共用templates。

在settings文件的大概58行加入:

"DIRS": [os.path.join(BASE_DIR, "templates")],

别忘了在前面引入os库!!

os.path.join(BASE_DIR, "templates") 的作用是将 BASE_DIR(项目的根目录)与 templates 子目录拼接成一个绝对路径,告诉 Django 从这个文件夹中寻找模板文件。

静态文件的介绍和一般存放位置前面已经讲了,现在来讲讲静态文件在页面中的引用

前端写好的文件和一些img之类的,可以应用到模板中。

如果是像我之前那样在控制台输入指令新建的Django文件,则用不了{% static %} 标签。但可以用文件的相对路径。

<img src="/static/img/picture_1.jpg" alt="">
<link rel="stylesheet" href="static/css/styles.css">
<script src="/static/js/jquery-3.6.0.min.js"></script>
<script src="/static/plugins/bootstrap-3.4.1/js/bootstrap.js"></script>

若是在Pycharm中创建的Django,可以使用{% static %} 标签引入静态文件

先在模板文件的顶部加入{% load static %}

引入 CSS 文件

<link rel="stylesheet" href="{% static 'css/styles.css' %}">

引入 JS 文件

<script src="{% static 'js/scripts.js' %}"></script>

引入图片

<img src="{% static 'img/logo.png' %}" alt="Logo">

引入其他静态资源

对于插件或 TypeScript 文件:

<script src="{% static 'plugins/plugin.js' %}"></script> 
<script src="{% static 'ts/script.ts' %}"></script>

但是用这个语法,要用Pycharm创建Django项目,而且需要用专业版的Pycharm,不然会有报错,大家有专业版的可以用这种语法,社区版的就还是用上面的文件的相对路径引入即可。

五、请求与响应

1、请求

用户发送请求一般分为GET 请求和POST 请求,GET 和 POST 是 HTTP 的两种请求方法,GET 用于从服务器获取数据,参数通过 URL 传递,易被缓存,适合传递少量、非敏感数据;POST 用于向服务器提交数据,参数通过请求体传递,适合提交表单或大数据,且更安全。GET 请求参数可见,长度有限且幂等;POST 参数不可见,无长度限制,通常会修改服务器状态,不具幂等性。GET 常用于查询操作,POST 常用于提交数据或更新操作。

查询请求的方式:

requests.method

就对于前面写的表单,在控制台打印请求,就是POST请求

获取请求的方式:

request.POST

结果是一个对象,用来获取客户端通过 POST 请求 提交的数据。它是一个类似字典的对象,包含了所有通过 POST 方法提交的表单数据(通常是键值对的形式)。

request.GET

是 Django 中用于获取通过 GET 请求 提交的查询参数的一个对象。它是一个类似字典的对象,包含了客户端通过 URL 查询字符串传递的所有参数。

2、响应

像上面介绍的render,还有之前的HttpResponse,还有一个redirect重定向,都是经常用到的视图响应函数 的工具

redirect重定向是用户发送请求后,直接跳转到另外的网址,比如百度官网之类的,编写方式如下:

return redirect('https://blog.csdn.net/2403_83182682?type=blog')

第一个参数就是要跳转的网址

三个响应函数的区别如下:

基本功能

返回指定内容作为 HTTP 响应

渲染模板文件并返回包含动态内容的 HTTP 响应

返回一个 HTTP 重定向响应,将用户跳转到另一个 URL

常用场景

用于返回简单的字符串、HTML 或其他内容

用于返回包含动态页面的完整 HTML 响应

用于重定向用户到其他页面(如成功后的跳转)

返回内容类型

文本、HTML、JSON 或其他任意内容

渲染后的 HTML 内容

重定向响应,浏览器跳转到目标 URL

函数参数

内容(如字符串或 HTML 代码)

request、模板文件路径、上下文数据(字典)

URL 名称、URL 路径或视图名称

返回对象

HttpResponse 对象

HttpResponse 对象(经过模板渲染的 HTML)

HttpResponseRedirect 对象

适用场景示例

返回简单消息或 API 响应:HttpResponse("Hello")

返回渲染的页面:render(request, "index.html")

用户登录后跳转:redirect("dashboard")

六、综合小案例

经过前面的学习,详细您对Django以及有了一定的了解,下面进行一个小案例。

需求是定义一个登录页面,用户名或密码输出,会提示,正确则跳转到一个url,内容是所爬取的豆瓣电影排行前25。

可以就在之前的login上修改修改就行

1、源码展示

视图函数:

def login(request):# 豆瓣电影前25排行headers = {'user-agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) ''Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0'}response = requests.get("https://movie.douban.com/top250", timeout=10, headers=headers)response = response.textresp = re.findall(r'<span class="title">(?!.*&nbsp;)(?P<name>.*?)</span>', response)if request.method == 'POST':print(request.method)print(request.POST)username = request.POST['user']password = request.POST['pwd']context= {'name':username,'password':password,'resp':resp}if username == 'edward' and password == '1234':return render(request, 'douban.html',context)else:# error_msg 登录失败返回信息return render(request, "login.html", {"error_msg": "用户名或密码错误"})return render(request, "login.html")

登录页面:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>body {display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;flex-direction: column;text-align: center;}/* 调整图片大小 */img {width: 200px;height: auto;}input[type="text"], input[type="password"], input[type="submit"] {font-size: 18px;padding: 10px;margin: 10px 0;width: 25%;box-sizing: border-box;}input[type="submit"] {background-color: #4CAF50;color: white;border: none;cursor: pointer;}input[type="submit"]:hover {background-color: #45a049;}span {font-size: 8px;color: red;}</style>
</head>
<body>
<h1>用户登录</h1>
<form action="/login/" method="post">{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="password" name="pwd" placeholder="密码"><input type="submit" value="提交"/><!--只有当error_msg存在时才显示错误信息-->{% if error_msg %}<span style="color: red">{{ error_msg }}</span>{% endif %}
</form>
<img src="/static/img/picture_1.jpg" alt=""></body>
</html>

显示电影排行页面:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>豆瓣Top25</h1>
<div>豆瓣电影前25榜单:</div>
<ul>{% for item in resp%}<li>{{item}}</li>{% endfor %}
</ul>
<div>{{response}}</div>
</body>
</html>

2、注意事项以及部分解释

注意视图函数用了requests请求以及re解析,需在前面引入

import re
import requests

下面这段是关于网络爬虫的,有基础的可以看看,没基础的直接复制就行。

headers = {'user-agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) ''Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0'}response = requests.get("https://movie.douban.com/top250", timeout=10, headers=headers)response = response.textresp = re.findall(r'<span class="title">(?!.*&nbsp;)(?P<name>.*?)</span>', response)

这里的用户名和密码是自己设置的,一般来说,用户名和密码是不会出现在代码中的,容易泄露,可以存放于数据库中,但我图方便就先这样了,后面再出一个完整的Django和Mysql连接的博客。

if username == 'edward' and password == '1234':return render(request, 'douban.html',context)

html页面做得比较简洁,有前端基础的同学可以试着改改,使页面更加美观。

3、展示

初始界面:

用户名或密码输入错误,提示错误:

成功登录,显示排行榜:

感谢大家的三连!!!我会尽快更新的

相关文章:

【玩转全栈】----Django模板语法、请求与响应

目录 一、引言 二、模板语法 三、传参 1、视图函数到模板文件 2、模板文件到视图函数 四、引入静态文件 五、请求与响应 ?1、请求 2、响应 六、综合小案例 1、源码展示 2、注意事项以及部分解释 3、展示 一、引言 像之前那个页面&#xff0c;太过简陋&#xff0c;而且一个完整…...

网络安全:挑战、技术与未来发展

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在数字化时代&#xff0c;网络安全&#xff08;Cybersecurity&#xff09;已成为全球关注的焦点。随着云计算、大数据、…...

DeepSeek 服务器繁忙的全面解决方案

目录 引文 正文 一、 服务器繁忙的原因分析 二、 解决方案 2.1切换网络 2.2使用网络加速工具 2.3错峰使用DeepSeek 2.4本地部署 2.5调用API 三、官方动态 一、技术研发与产品升级 二、市场合作与商业化进展 三、区域化布局与产业赋能 四、未来规划与社会责任 结语…...

将OpenWrt部署在x86服务器上

正文共&#xff1a;1234 字 40 图&#xff0c;预估阅读时间&#xff1a;2 分钟 如果你问ChatGPT有哪些开源的SD-WAN方案&#xff0c;他会这样答复你&#xff1a; 我们看到&#xff0c;OpenWrt也属于比较知名的开源SD-WAN解决方案。当然&#xff0c;在很久之前&#xff0c;我就发…...

计算机视觉:卷积神经网络(CNN)基本概念(一)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络 一、引言 卷积神经网络&…...

企业文件共享中的权限管理与安全风险防范

在企业的日常运营中&#xff0c;文件共享是必不可少的一项工作。然而&#xff0c;文件共享过程中如果权限管理不当&#xff0c;极易引发安全风险&#xff0c;导致企业敏感信息泄露。因此&#xff0c;加强文件共享中的权限管理与安全风险防范&#xff0c;对于保障企业信息安全至…...

使用DeepSeek建立一个智能聊天机器人0.12

为了确保这段代码能够在Windows和Linux系统上都能正常运行,我考虑以下几个方面: 路径分隔符:在Windows和Linux中,文件路径的分隔符不同。Windows使用反斜杠(\),而Linux使用正斜杠(/)。我们可以使用 os.path.join 来处理路径,以确保跨平台兼容性。 消息框:tkinter.…...

国家队出手!DeepSeek上线国家超算互联网平台!

目前,国家超算互联网平台已推出 DeepSeek – R1 模型的 1.5B、7B、8B、14B 版本,后续还会在近期更新 32B、70B 等版本。 DeepSeek太火爆了!在这个春节档,直接成了全民热议的话题。 DeepSeek也毫无悬念地干到了全球增速最快的AI应用。这几天,国内的云计算厂家都在支持Dee…...

Deep seek学习日记1

Deepseek最强大的就是它的深度思考&#xff0c;并且展现了它的思考过程。 五种可使用Deep seek的方式&#xff08;应该不限于这五种&#xff0c;后续嵌入deepseek的应该更多&#xff0c;多了解一点因为官网容易崩~~&#xff09;&#xff1a; 1.deep seek官网 2.硅基流动silicon…...

乐理笔记(持续更新)

单音与音程 单音&#xff1a;由一个音组成。 音程&#xff1a;由两个音组成&#xff0c;表示两个音之间的音高距离。 如何数音程&#xff1a; 单音程&#xff1a;9 - X&#xff0c;性质相反。例如&#xff0c;9度音程减去某个数&#xff0c;性质会相反。 复音程&#xff1a…...

【动态路由】系统Web URL资源整合系列(后端技术实现)【nodejs实现】

需求说明 软件功能需求&#xff1a;反向代理功能&#xff08;描述&#xff1a;apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资…...

PHP高效、轻量级表格数据处理库 OpenSpout ,很好用

OpenSpout 是一个高效、轻量级的 PHP 库&#xff0c;用于处理电子表格文件&#xff08;如 Excel 和 CSV&#xff09;。它支持读取和写入大型文件&#xff0c;且内存占用低。本文将详细介绍如何安装和使用 OpenSpout。 目录 安装 基本使用 高级功能 参考文档 安装 OpenSp…...

2010年上半年软件设计师考试上午真题的知识点整理(附真题及答案解析)

以下是2010年上半年软件设计师考试上午真题的知识点分类整理&#xff0c;涉及定义的详细解释&#xff0c;供背诵记忆。 1. 计算机组成原理 CPU与存储器的访问。 Cache的作用: 提高CPU访问主存数据的速度&#xff0c;减少访问延迟。存储器的层次结构: 包括寄存器、Cache、主存和…...

EventSource的使用

什么是EventSource EventSource 是一个用于服务器推送事件&#xff08;Server-Sent Events, SSE&#xff09;的接口&#xff0c;它允许服务器推送实时更新到浏览器。与 WebSocket 不同&#xff0c;SSE 是单向的&#xff08;服务器到客户端&#xff09;&#xff0c;适用于更新频…...

【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】

凌晨三点的ICU病房,AI辅助诊断系统将一位患者的肺炎误判为普通感冒——当主治医生要求查看诊断依据时,系统只能给出冷冰冰的概率数值。这场惊心动魄的误诊事件,掀开了深度学习可解释性危机的冰山一角。 一、模型透明的"第一性原理" 1.1 可解释性的三维度量 ![可…...

RocketMq中RouteInfoManger组件的源码分析

1.前言 RouteInfoManager 是 RocketMQ 中 NameServer 的核心组件之一&#xff0c;主要负责管理和维护整个 RocketMQ 集群的路由元数据信息。里面包含一些非常核心的功能&#xff1a;存储和管理 Broker 信息&#xff08;broker的注册&#xff0c;broker心跳的维护&#xff09;&…...

java八股文-mysql

1. 索引 1.1 什么是索引 索引(index)是帮助Mysql高效获取数据的数据结构(有序).提高数据的检索效率,降低数据库的IO成本(不需要全表扫描).通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗. 1.2 mysql索引使用的B树? 1. 没有使用二叉树&#xff0c;最坏情况o&…...

Cherno C++ P55 宏

这篇文章我们讲一下C当中的宏。其实接触过大型项目的朋友可能都被诡异的宏折磨过。 宏是在预处理当中&#xff0c;通过文本替换的方式来实现一些操作&#xff0c;这样可以不用反复的输入代码&#xff0c;帮助我们实现自动化。至于预处理的过程&#xff0c;其实就是文本编辑&am…...

MybatisMybatisPllus公共字段填充与配置逻辑删除

Mybatis/MybatisPllus公共字段填充与配置逻辑删除 在开发过程中&#xff0c;很多时候需要处理一些公共字段&#xff0c;例如&#xff1a;创建时间、修改时间、状态字段等。这些字段通常会在插入或更新数据时进行填充&#xff0c;以便记录数据的变化和状态。同时&#xff0c;逻…...

VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant

VS Code User和System版区别 Chapter1 VS Code User和System版区别1. 对于安装而言2. 结束语 Chapter2 VS Code 安装、配置教程及插件推荐插件&#xff1a; Chapter3 VSCodeKeil协同开发之Keil Assistant1. 效果展示2. Keil Assistant简介3. Keil Assistant功能特性4. 部署步骤…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...