当前位置: 首页 > 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;在使用时能够提供更加灵活…...

算法通关村第16关【青铜】| 滑动窗口思想

1. 滑动窗口的基本思想 一句话概括就是两个快慢指针维护的一个会移动的区间 固定大小窗口&#xff1a;求哪个窗口元素最大、最小、平均值、和最大、和最小 可变大小窗口&#xff1a;求一个序列里最大、最小窗口是什么 2. 两个入门题 &#xff08;1&#xff09;子数组最大平…...

CentOS安装openjdk和elasticsearch

CentOS安装openjdk 文章目录 CentOS安装openjdk一、yum1.1search1.2安装openjdk 二、elasticsearch的启动和关闭2.1启动2.2关闭2.3添加服务 一、yum 1.1search yum search java | grep jdk1.2安装openjdk [roottest ~]# yum install java-1.8.0-openjdk -y 查看openjdk版本 …...

【新版】系统架构设计师 - 案例分析 - 信息安全

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 信息安全安全架构安全模型分类BLP模型Biba模型Chinese Wall模型 信息安全整体架构设计WPDRRC模型各模型安全防范功能 网络安全体系架构设计开放系统互联安全体系结构安全服务与安全机制…...

数据库设计(火车订票系统)

为一个火车订票系统设计一个数据库是一个好的方法来训练你的数据库技巧。 其中有一些需要考虑到的复杂度。 过一些需求&#xff0c;并且创建表格。 为这个虚构的火车订票系统提出了10个需求。 我们将把其中每个添加到entity relational diagram&#xff08;实体关系图&…...

qemu+docker在服务器上搭建linux内核调试环境

基于docker和qemu的操作系统实验环境 参考以上文章实现。 其中 docker run -it --name linux_qemu qemu /bin/bash #从qemu镜像启动一个容器linux_qemu,进入shell 要改为 docker run -it --name linux_qemu 3292900173/qemu /bin/bash另外&#xff0c;在vscode运行过程中,ssh远…...

Stable Diffusion 参数介绍及用法

大模型 CheckPoint 介绍 作用&#xff1a;定调了作图风格&#xff0c;可以理解为指挥者 安装路径&#xff1a;models/Stable-diffusion 推荐&#xff1a; AnythingV5Ink_v32Ink.safetensors cuteyukimixAdorable_midchapter2.safetensors manmaruMix_v10.safetensors counterf…...

打印大对象日志导致GC问题的解决

内容&#xff1a; rpc调用外部服务时&#xff0c;需要将req和resp的信息打印出来&#xff0c;以便于排查问题。但是有的rpc服务的resp信息过于庞大&#xff0c;比如resp中有List<>信息&#xff0c;list很大很大时会导致log.info打印信息时&#xff0c;产生GC&#xff0c…...

【Docker】学习笔记

1. docker基本操作 镜像搜索 // 直接搜索镜像资源 docker search mysql // 搜索过滤 docker search --filter "is-officialtrue" mysql // 官方发布镜像拉取镜像 docker pull mysql查看本地镜像 docker images删除本地镜像 docker rmi mysql // 强制删除镜像 d…...

网易云信4K 8K RTC助力远程医疗的技术实践

// 编者按&#xff1a;随着近年来国家关于缓解医疗资源分配不均的一系列政策出台&#xff0c;远程医疗作为平衡医疗资源分配的有力手段&#xff0c;目前正处于强劲发展阶段。网易云信运用超高清RTC视频技术助力医疗行业实现了远程高清视频病理分析和手术示教等能力。LiveVide…...

【排序算法】冒泡排序、插入排序、归并排序、希尔排序、选择排序、堆排序、快速排序

目录 几大排序汇总 1.冒泡排序 性能: 思路和代码: 2.插入排序 性能: 思路和代码: 3.归并排序 性能: 思路和代码: 4.希尔排序 性能: 思路和代码: 5.选择排序 性能: 思路和代码: 6.堆排序 性能: 思路和代码: topK问题 7.快速排序 性能: 思路和代码: 几大排…...

黄石做企业网站/成人就业技术培训机构

本文转载自News BTC对CROSS的特别报道。以下为翻译的原文&#xff1a; 拍卖是财产权利转让的最古老方式之一。自从人类有了剩余价值的流动性需求&#xff0c;就有了拍卖这种方式。说到捡漏收藏界尽知的当属“明成化斗彩鸡缸杯”了。它的传承过程&#xff0c;似乎就是一部“拣大…...

织梦 和wordpress/淘宝关键词指数查询

1.点击如下链接进入下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 按照提示安装成功&#xff01;&#xff08;很简单&#xff09; 下载如图&#xff1a; 2.找到如图所示的目录&#xff08;直到home,是bin的根目录&#xff09;…...

摄影网站开发的背景/免费seo软件

背景 在看阿里巴巴Java开发手册手册时&#xff0c;看到了有关hashCode()和equals()方法的使用规范。 只要重写 equals&#xff0c;就必须重写 hashCode。 因为 Set 存储的是不重复的对象&#xff0c;依据 hashCode 和 equals 进行判断&#xff0c;所以 Set 存储的对象必须重写…...

南通网站建设制作公司/培训公司

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-B证-项目负责人&#xff08;广东省&#xff09;找解析根据新安全员-B证-项目负责人&#xff08;广东省&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将安全员-B证-项目负责人&#xff08;广东省…...

提高网站排名/国内比百度好的搜索引擎

文章目录一、Python简介1.Python定义2.Python特点3.Python编译和运行过程4.Python的应用场景二、下载安装1.Windows2.Linux三、语法介绍1.代码缩进2.函数六、网络爬虫七、桌面应用开发一、Python简介 1.Python定义 Python是一种简单易学并且结合了解释性、编译性、互动性和面…...

广州市研发网站建设价格/免费推广的平台都有哪些

CGI是干嘛的&#xff1f;CGI是为了保证web server传递过来的数据是标准格式的&#xff0c;方便CGI程序的编写者。 web server&#xff08;比如说nginx&#xff09;只是内容的分发者。比如&#xff0c;如果请求/index.html&#xff0c;那么web server会去文件系统中找到这个文件…...