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

Django — 会话

目录

  • 一、Cookie
    • 1、介绍
    • 2、作用
    • 3、工作原理
    • 4、结构
    • 5、用途
    • 6、设置
    • 7、获取
  • 二、Session
    • 1、介绍
    • 2、作用
    • 3、工作原理
    • 3、类型
    • 4、用途
    • 5、设置
    • 6、获取
    • 7、清空信息
  • 三、Cookie 和 Session 的区别
    • 1、存储位置
    • 2、安全性
    • 3、数据大小
    • 4、跨页面共享
    • 5、生命周期
    • 6、实现机制
    • 7、适用场景
  • 四、Python 连接远程
  • 五、使用 Ubuntu 里面的虚拟环境
  • 六、Redis 配置和使用
    • 1、在虚拟环境中下载 Redis 的安装包
    • 2、代码实现

一、Cookie

1、介绍

Cookie 是一种在 Web 开发中用于在客户端和服务器之间存储小型数据的机制。它通常用于跟踪用户的会话、存储用户首选项以及实现其他与用户相关的功能。

字典类型,不同页面的 Cookie 有不同的内容。

2、作用

浏览器的缓存,网站的访问记录,让下次访问的时候能够直接的找出这个网站的地址,实现状态的保持。

3、工作原理

  • 当用户访问一个网站时,服务器可以通过 HTTP 响应将一个或多个 Cookie 发送到用户的浏览器中。
  • 浏览器将这些 Cookie 存储在本地,并在随后的每个 HTTP 请求中将它们发送回服务器。
  • 服务器可以根据这些 Cookie 来识别用户、跟踪会话、存储数据等。

4、结构

  • 名称:Cookie 的名称,用于标识 Cookie。
  • 值:与 Cookie 相关联的数据。
  • 域名:指定了 Cookie 有效的域名。
  • 路径:指定了 Cookie 有效的路径。
  • 过期时间:指定了 Cookie 的过期日期和时间。
  • 安全标志:指示浏览器仅在 HTTPS 连接中发送 Cookie。
  • HttpOnly 标志:指示 Cookie 只能通过 HTTP 请求访问,JavaScript 无法访问。

5、用途

  • 跟踪用户会话:Cookie 常用于跟踪用户的会话,以便在用户浏览不同页面时保持用户的登录状态。
  • 存储用户首选项:网站可以使用 Cookie 来存储用户的首选语言、主题、字体大小等。
  • 记住用户:网站可以使用 Cookie 来记住用户的用户名,使其在下次访问时无需重新登录。
  • 分析用户行为:Cookie 还可用于收集用户行为数据,用于分析和改进网站。
  • 广告定位:广告公司可以使用 Cookie 来跟踪用户的兴趣,向他们展示相关的广告。

6、设置

浏览器访问 Django,响应的时候设置 Cookie。

# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由path('', include('users.urls'))
]
# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 set_cookie 视图函数path('set_cookie/',views.set_cookie)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def set_cookie(request):'''设置 cookie 信息:param request::return:'''response = HttpResponse('设置 cookie 成功!')response.set_cookie('name','abc')response.set_cookie('age','18')response.set_cookie('gender', 'male')return response

在这里插入图片描述

在这里插入图片描述

访问网站的其它页面时,Cookie 还在,关闭浏览器后再访问,Cookie 会清空。

# 设置 cookie 过期时间,是用秒进行计算,不要一起用
max_age=None  # 最大多少秒过期
expires=None  # 过期时间
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def set_cookie(request):'''设置 cookie 信息:param request::return:'''response = HttpResponse('设置 cookie 成功!')response.set_cookie('name','abc',max_age=3600)response.set_cookie('age','18',max_age=3600)response.set_cookie('gender', 'male')return response

关闭浏览器后再访问其它页面时,设置时间的 Cookie 还在,没设置的会清空。

# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 set_cookie2 视图函数path('set_cookie2/',views.set_cookie2)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def set_cookie2(request):'''设置 cookie 信息:param request::return:'''res = HttpResponse('设置 cookie')res.set_cookie('username','abc')return res

7、获取

作用:作为验证。

# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views  # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 get_cookie 视图函数path('get_cookie/',views.get_cookie)
]
# 子应用的 views.py
from django.shortcuts import render  # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse  # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def get_cookie(request):'''获取 cookie 信息:param request::return:'''print(request)cookies = request.COOKIESprint(cookies)return HttpResponse('获取 cookie')

二、Session

1、介绍

会话(Session)是一种在 Web 开发中用于跟踪用户状态和存储用户数据的机制。它允许在不同的 HTTP 请求之间保持用户的身份和数据,并且比 Cookie 更安全和灵活。

保持网站中用户访问的具体信息,必须依托于 Cookie,保存在服务器的数据库(Redis)里面。

2、作用

方便用户以后进行登录的状态保持

3、工作原理

  • 会话在服务器端维护,通常将会话数据存储在服务器上的一个数据存储区域中(如内存、数据库、缓存等)。
  • 当用户访问网站时,服务器为用户创建一个唯一的会话标识符(通常是会话 ID),并将该标识符存储在 Cookie 中或通过 URL 参数传递给客户端。
  • 客户端在随后的 HTTP 请求中发送会话 ID 给服务器,服务器使用该 ID 来识别用户并检索相应的会话数据。

3、类型

字典类型

4、用途

  • 跟踪用户会话:会话用于跟踪用户的登录状态,以确保用户在不同页面之间保持登录状态。
  • 存储用户数据:会话允许存储用户相关的数据,如购物车内容、用户首选项、用户配置等。
  • 跨页面共享数据:会话数据可以在不同页面之间共享,无需重复查询数据库或使用 Cookie。

5、设置

# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由path('', include('users.urls'))
]
# users 子应用的 urls.py
from django.urls import path # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 set_session 视图函数path('set_session/',views.set_session)
]
# 子应用的 views.py
from django.shortcuts import render # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def set_session(request):'''设置 session:param request: 在请求参数中使用 session 方法,session是字典类型存储的:return:'''request.session['username'] = 'tang'request.session['age'] = 18return HttpResponse('设置 session')

在这里插入图片描述

6、获取

# users 子应用的 urls.py
from django.urls import path # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 get_session 视图函数path('get_session/',views.get_session)
]
# 子应用的 views.py
from django.shortcuts import render # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def get_session(request):'''获取 session:param request: 在哪里设置就从哪里拿:return:'''username = request.session['username']age = request.session['age']print(username)  # tangprint(age)  # 18return HttpResponse('获取 session')

7、清空信息

# users 子应用的 urls.py
from django.urls import path # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 flush_session 视图函数path('flush_session/',views.flush_session)
]
# 子应用的 views.py
from django.shortcuts import render # 导入 Django 的 render 函数,用于渲染模板并返回响应
from django.http import HttpResponse # 导入 Django 的 HttpResponse 类,用于创建 HTTP 响应对象# Create your views here.# 定义视图函数
def flush_session(request):'''清空 session 信息:param request::return:'''request.session.flush()return HttpResponse('xxx')

在这里插入图片描述

三、Cookie 和 Session 的区别

1、存储位置

  • Cookie 数据存储在客户端浏览器中。
  • Session 数据存储在服务器上。

2、安全性

  • Cookie 相对不够安全,因为数据存储在客户端,可能被篡改。
  • Session 更安全,数据存储在服务器端,不易被访问或修改。

3、数据大小

  • Cookie 通常有大小限制,每个 Cookie 较小。
  • Session 通常能够存储更多数据,不受大小限制。

4、跨页面共享

  • Cookie 可在不同页面之间共享,因为存储在客户端。
  • Session 也可在不同页面共享,但需要通过会话 ID 关联数据,存储在服务器端。

5、生命周期

  • Cookie 的生命周期由设置的过期时间或浏览器会话控制。
  • Session 通常在用户关闭浏览器或一段时间不活动后过期,由服务器控制。

6、实现机制

  • Cookie 由服务器发送到客户端,由浏览器管理。
  • Session 由服务器创建和管理,通常通过Web框架提供的工具。

7、适用场景

  • Cookie 适合存储少量不敏感数据,如用户首选项。
  • Session 适合存储敏感数据,如用户身份验证信息,需要安全管理的数据。

四、Python 连接远程

1、在 Ubuntu 终端输入命令查看 IP:

指路 Ubuntu 的安装

ip add

在这里插入图片描述

2、在 PyCharm 里点击”工具“,选择”部署“,选择”配置“(连接远程需要用 PyCharm 专业版);

在这里插入图片描述

3、点击“+”,选择“SFTP”;

在这里插入图片描述

4、添加名称后,点击“确定”;

在这里插入图片描述

5、点击“…”;

在这里插入图片描述

6、点击“+”;

在这里插入图片描述

7、主机里填之前查询到的 IP,用户名是 pyvip,密码是 pythonvip (Ubuntu 的用户名和密码),选择“保存密码”,点击“测试连接”;

在这里插入图片描述

8、点击”确定“;

在这里插入图片描述

9、点击”确定“;

在这里插入图片描述

10、点击”测试连接“,点击”确定“;

在这里插入图片描述

11、点击“自动检测”,会自动填入;

在这里插入图片描述

12、在 Ubuntu 的终端里输入命令;

查看当前路径下的文件:ls

查看当前路径:pwd

创建文件夹:mkdir 文件夹名称

在这里插入图片描述

13、点击“映射”,点击“部署路径”的“文件夹”,选择刚刚在 Ubuntu 里创建的文件夹;

在这里插入图片描述

14、点击“确定”;

在这里插入图片描述

15、在项目上右键点击,选择“部署”,选择“上传”,将本地的文件上传到 Ubuntu 的文件夹里面;

在这里插入图片描述

16、在 Ubuntu 里查看已经上传的文件。

进入文件夹:cd 文件夹名称

查看当前路径下的文件:ls

在这里插入图片描述

五、使用 Ubuntu 里面的虚拟环境

1、在 PyCharm 里点击“文件”,“设置”,找到“Python 解释器”,点击“添加解释器”,选择“SSH”;

在这里插入图片描述

2、选择“现有”,点击“…”;

在这里插入图片描述

3、选择想要的配置,点击“确定”;

在这里插入图片描述

4、点击“移动”,点击“下一步”;

在这里插入图片描述

5、点击“下一步”;

在这里插入图片描述

6、在 Ubuntu 的终端中输入命令:

创建虚拟环境:mkvirtualenv -p python3 文件夹名称

查看:pip list

安装 django:pip install django==3.1.7

7、选择“现有”,点击“…”;

在这里插入图片描述

8、找到“python3.6”,点击“确定”;

在这里插入图片描述

9、点击“同步文件夹”的“文件夹”;

在这里插入图片描述

10、把“远程路径”改成 /,点击“确定”;

在这里插入图片描述

11、点击“创建”;

在这里插入图片描述

12、点击“确定”;

在这里插入图片描述

13、点击“工具”,选择“部署”,选择“配置”;

在这里插入图片描述

14、点击“自动检测”;

在这里插入图片描述

15、点击“映射”,点击“部署路径”的“文件夹”,选择对应文件夹,点击“确定”;

在这里插入图片描述

16、点击“确定”;

在这里插入图片描述

17、在项目文件夹上右键点击,选择“部署”,选择“上传”;

在这里插入图片描述

18、点击“是”;

在这里插入图片描述

19、再运行,就是运行远程的代码了,点击“编辑配置”;

在这里插入图片描述

20、输入 IP 和端口号,点击“确定”;

在这里插入图片描述

21、在 settings.py 文件里修改以下位置代码;

# settings.py
# 设置允许的主机列表(ip 地址、服务器地址、Ubuntu 的 ip),留空表示允许所有主机
ALLOWED_HOSTS = ['*']

22、在 manage.py 里运行代码,就可以在远程地址访问了。

在这里插入图片描述

六、Redis 配置和使用

1、在虚拟环境中下载 Redis 的安装包

1、选择“工具”,选择“启动 SSH 会话”;

2、选择要连接的主机;

3、在终端输入命令。

pip install django-redis

2、代码实现

# setting.py
# Redis 配置,缓存数据库
CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache','LOCATION': 'redis://127.0.0.1:6379/0','OPTIONS': {'CLIENT_CLASS':'django_redis.client.DefaultClient',}},'code': {'BACKEND': 'django_redis.cache.RedisCache','LOCATION': 'redis://127.0.0.1:6379/1','OPTIONS': {'CLIENT_CLASS':'django_redis.client.DefaultClient',}},
}
# default 库名是不能修改的
# SESSION_ENGINE='django.contrib.sessions.backends.cache_db'  # 混合存储
# SESSION_ENGINE='django.contrib.sessions.backends.db'  # 缓存指定采用的数据库类型 默认采用数据库
# SESSION_ENGINE='django.contrib.sessions.backends.cache'  # redis
# SESSION_CACHE_ALIAS = "default"  # 指定缓存的数据库# session 的存储配置
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 将 sessin 保持到 redis 中
SESSION_CACHE_ALIAS = 'default'  # 指定缓存的数据库# 设置 session 失效时间,单位为秒
SESSION_COOKIE_AGE = 60*5
# Project 项目中的 urls.py
from django.urls import path,include  # 导入 Django 的 path 函数,用于配置 URL 路由,include 函数,用于将其它 URL 模式包含在当前 URL 配置中# URL 配置列表,定义了网站的所有 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由path('', include('users.urls'))
]
# users 子应用的 urls.py
from django.urls import path  # 导入 Django 的 path 函数,用于配置 URL 路由
from .import views # 导入当前目录下的 views.py 文件中的模块或视图函数# URL 配置列表,定义 URL 路径和对应的处理程序
urlpatterns = [# 配置 URL 路由,调用 views.py 中的 cx_redis 视图函数path('cx_redis/',views.cx_redis),# 配置 URL 路由,调用 views.py 中的 cx_redis2 视图函数path('cx_redis2/',views.cx_redis2)
]
# view.py
from django_redis import get_redis_connection  # 用于获取已配置的 Redis 连接,并返回一个与 Redis 服务器的连接对象def cx_redis(request):'''Redis 缓存示例:param request: Django 请求对象:return: HttpResponse'''# 获取 Redis 连接,'default' 是 Redis 缓存配置中的别名conn = get_redis_connection('default')# 打印连接对象,可选,用于调试和检查连接是否正常print(conn)  # Redis<ConnectionPool<Connection<host=127.0.0.1,port=6379,db=0>>># 设置一个名为 'age' 的键,对应的值为 100conn.set('age', 100)# 使用哈希数据结构设置 'k1' 键下的 'name' 字段的值为 '张三'conn.hset('k1', 'name', '张三')# 保存对Redis的修改(可选,取决于配置,有些情况下不需要手动保存)conn.save()# 获取 'age' 键的值并打印age = conn.get('age')print(age)  # b'100'# 获取 'k1' 键的所有字段及其对应的值,并打印k1_data = conn.hgetall('k1')print(k1_data)  # {b'name': b'\xe5\xbc\xa0\xe4\xb8\x89'}# 返回一个成功设置的消息return HttpResponse('设置成功')def cx_redis2(request):'''Redis 缓存示例:param request: Django 请求对象:return: HttpResponse'''# 获取Redis连接,'code' 是 Redis 缓存配置中的别名conn = get_redis_connection("code")# 打印连接对象,可选,用于调试和检查连接是否正常print(conn)  # Redis<ConnectionPool<Connection<host=127.0.0.1,port=6379,db=1>>># 设置一个名为 'age' 的键,对应的值为 100conn.set('age', 100)# 使用哈希数据结构设置 'k1' 键下的 'name' 字段的值为 '张三'conn.hset('k1', 'name', '张三')# 获取 session 中的 'name' 值(前提是需要在请求中有一个名为 'name' 的 session 值)session = request.session.get('name')print(session)  # None# 保存对 Redis 的修改(可选,取决于配置,有些情况下不需要手动保存)conn.save()# 获取 'age' 键的值并打印age = conn.get('age')print(age)  # b'100'# 获取 'k1' 键的所有字段及其对应的值,并打印k1_data = conn.hgetall('k1')print(k1_data)  # {b'name': b'\xe5\xbc\xa0\xe4\xb8\x89'}# 获取不存在的 'k2' 键的所有字段及其对应的值,并打印(会返回空字典)k2_data = conn.hgetall('k2')print(k2_data)  # {}# 删除 'k1' 键下的 'name' 字段conn.hdel('k1', 'name')# 打印删除后的 'k1' 键的所有字段及其对应的值('name' 字段已被删除)print(conn.hgetall('k1'))  # {}# 返回一个成功获取的消息作为 HTTP 响应return HttpResponse("获取成功")

记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~

相关文章:

Django — 会话

目录 一、Cookie1、介绍2、作用3、工作原理4、结构5、用途6、设置7、获取 二、Session1、介绍2、作用3、工作原理3、类型4、用途5、设置6、获取7、清空信息 三、Cookie 和 Session 的区别1、存储位置2、安全性3、数据大小4、跨页面共享5、生命周期6、实现机制7、适用场景 四、P…...

SpringBoot集成easypoi实现execl导出

<!--easypoi依赖&#xff0c;excel导入导出--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version></dependency>通过Exce注解设置标头名字和单…...

第9章 【MySQL】InnoDB的表空间

表空间 是一个抽象的概念&#xff0c;对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为 表名.ibd 的实际文件。大家可以把表空间想象成被切分为许许多多个 页 的池子&#xff0c;当我…...

工作、生活常用免费api接口大全

手机号码归属地&#xff1a;提供三大运营商的手机号码归属地查询。全国快递物流查询&#xff1a;1.提供包括申通、顺丰、圆通、韵达、中通、汇通等600快递公司在内的快递物流单号查询。2.与官网实时同步更新。3.自动识别快递公司。IP归属地-IPv4区县级&#xff1a;根据IP地址查…...

寻找单身狗

在一个数组中仅出现一次&#xff0c;其他数均出现两次&#xff0c;这个出现一次的数就被称为“单身狗“。 一.一个单身狗 我们知道异或运算操作符 ^ &#xff0c;它的特点是对应二进制位相同为 0&#xff0c;相异为 1。 由此我们容易知道两个相同的数,进行异或运算得到的结果…...

【pytest】 allure 生成报告

1. 下载地址 官方文档; Allure Framework 参考文档&#xff1a; 最全的PytestAllure使用教程&#xff0c;建议收藏 - 知乎 https://github.com/allure-framework 1.2安装Python依赖 windows&#xff1a;pip install allure-pytest 2. 脚本 用例 import pytest class …...

动态链接库搜索顺序

动态链接库搜索顺序 同一动态链接库 (DLL) 的多个版本通常存在于操作系统 (OS) 内的不同文件系统位置。 可以通过指定完整路径来控制从中加载任何给定 DLL 的特定位置。 但是&#xff0c;如果不使用该方法&#xff0c;则系统会在加载时搜索 DLL&#xff0c;如本主题中所述。 DL…...

【CAN、LIN通信的区分】

CAN和LIN是两种不同的通信协议&#xff0c;用于不同的应用场景。CAN&#xff08;Controller Area Network&#xff09;是一种高速、可靠、多节点的串行通信协议&#xff0c;主要用于汽车电子领域的高速数据传输和控制&#xff1b;而LIN&#xff08;Local Interconnect Network&…...

Redis环境配置

【Redis解压即可】链接&#xff1a;https://pan.baidu.com/s/1y4xVLF8-8PI8qrczbxde9w?pwd0122 提取码&#xff1a;0122 【Redis桌面工具】 链接&#xff1a;https://pan.baidu.com/s/1IlsUy9sMfh95dQPeeM_1Qg?pwd0122 提取码&#xff1a;0122 Redis安装步骤 1.先打开Redis…...

UG NX二次开发(C++)-采用std::vector对体对象的质心进行排序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、体对象质心结构体的构造3、采用NXOpen获取part中的所有体对象4、通过遍历体对象集合来实现std::vector<MyBody>的赋值5、对结构体排序6、调用的完整源代码7、生成dll并测试一、pan…...

一点思考|关于「引领性研究」的一点感悟

前言&#xff1a;调研过这么多方向之后&#xff0c;对研究方向的产生与发展具备了一些自己的感悟&#xff0c;尤其是在AI安全领域。私认为&#xff0c;所谓有价值、有意义的研究&#xff0c;就是指在现实社会中能够产生波澜、为国家和社会产生一定效益的研究。 举例来说&#x…...

什么是HTTP/2?它与HTTP/1.1相比有什么改进?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ HTTP/2 简介⭐ 主要的改进和特点⭐ 总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端…...

IDEA

快捷键 好用的快捷键&#xff0c;可以使写代码变得更加便捷~ IntelliJ IDEA具有许多有用的快捷键&#xff0c;这些快捷键可以帮助开发人员更快速、高效地编写和管理代码。以下是一些常用的IntelliJ IDEA快捷键&#xff0c;这些快捷键在Java开发中特别有用&#xff1a; 基本编辑…...

NSS [HXPCTF 2021]includer‘s revenge

NSS [HXPCTF 2021]includer’s revenge 题目描述&#xff1a;Just sitting here and waiting for PHP 8.1 (lolphp). 题目源码&#xff1a;&#xff08;index.php&#xff09; <?php ($_GET[action] ?? read ) read ? readfile($_GET[file] ?? index.php) : inclu…...

《动手学深度学习 Pytorch版》 7.1 深度卷积神经网络(AlexNet)

7.1.1 学习表征 深度卷积神经网络的突破出现在2012年。突破可归因于以下两个关键因素&#xff1a; 缺少的成分&#xff1a;数据 数据集紧缺的情况在 2010 年前后兴起的大数据浪潮中得到改善。ImageNet 挑战赛中&#xff0c;ImageNet数据集由斯坦福大学教授李飞飞小组的研究人…...

C++ - 双指针_盛水最多的容器

盛水最多的容器 11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的…...

分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测

分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预…...

分享一个java+springboot+vue校园电动车租赁系统(源码、调试、开题、lw)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…...

高性能计算环境下的深度学习异构集群建设与优化实践

★深度学习&#xff1b;模式识别&#xff1b;图像处理&#xff1b;人工智能建模&#xff1b;人工智能&#xff1b;深度学习算法&#xff1b;强化学习&#xff1b;神经网络&#xff1b;卷积神经网络&#xff1b;人工神经网络&#xff1b;VIBE算法&#xff1b;控制系统仿真&#…...

Laravel框架 - Facade门面

1 、官方文档给出的定义 “Facades 为应用的 服务容器 提供了一个「静态」 接口。Laravel 自带了很多 Facades&#xff0c;可以访问绝大部分功能。Laravel Facades 实际是服务容器中底层类的 「静态代理」 &#xff0c;相对于传统静态方法&#xff0c;在使用时能够提供更加灵活…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...