自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue3、element-plus递归实现动态菜单

为了使用递归实现动态菜单,你需要定义一个递归组件,然后递归处理菜单数据的每一层。迭代菜单数据:在顶层组件中,使用循环或v-for遍历菜单数据,并递归生成子菜单。简化代码逻辑:当菜单结构多层嵌套时,递归可以大幅简化代码逻辑,使其更易于维护。灵活性:递归可以使代码更灵活,可以适应菜单结构的变化而不需要大量代码改动。可扩展性:递归实现的菜单可以适应不同嵌套深度,不需要特定的代码处理。多层嵌套:菜单可以包含子菜单,甚至更多层的嵌套,形成树状结构。检测终止条件:确保组件在没有子菜单时停止递归,以避免无限递归。

2024-04-30 13:50:55 1106 1

原创 在AutoDL平台部署ChatGLM3-6B(0基础小白超详细教程)

修改/ChatGLM3/basic_demo/web_demo_gradio.py的25行,将MODEL_PATH修改为上边下载好的本地路径。打开jupyterLab,进入数据盘(autodl-tmp),打开终端,将ChatGLM3-6B模型下载到数据盘中。下载模型文件很慢,可以停止下载,此时在/autodl-tmp/chatglm3-6b/目录下载主要的模型文件。复制这些文件的地址,在/autodl-tmp/chatglm3-6b/目录下,使用wget下载(非常的快)在/root下打开终端,执行。

2024-01-22 17:31:08 2695 4

原创 Elasticsearch-倒排索引

倒排索引源于实际应用中需要根据属性的值来查找记录,这种索引表中的每一个项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而成为倒排索引。带有倒排索引的文件我们称之为倒排索引文件,简称倒排文件。现在我们要查询,带有Python的文件,正常是对每个文件进行遍历,每个文件遍历一次,如果文件特别大,每个文件有一亿个字符,总共有一亿各文件,每个我们都要遍历,非常消耗资源。在存储文件之前,先对文件进行分析,将文件分词,对分词建立索引,例如下面一句话。

2023-01-09 19:29:51 318 1

原创 ElasticSearch安装

因为ElasticSearch是用Java语言编写的,所以必须安装JDK的环境,并且是JDK 1.8以上。出现上面页面就是安装成功了。

2023-01-09 18:01:51 1250

原创 ElasticSearch介绍

Elasticsearch 是一个基于Lucene的分布式搜索和分析引擎。ES是elaticsearch简写, Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch使用Java开发,在Apache许可条款下开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

2023-01-09 16:44:17 622

原创 分布式锁实现

上图可以看到,变量A存在三个服务器内存中(这个变量A主要体现是在一个类中的一个成员变量,是一个有状态的对象),如果不加任何控制的话,变量A同时都会在分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的!基于数据库的实现方式的核心思想是:在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁。注意:这只是使用基于数据库的一种方法,使用数据库实现分布式锁还有很多其他的玩法!

2023-01-05 20:34:39 177

原创 分布式id

在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。

2023-01-05 19:53:41 417

原创 Redis缓存雪崩&缓存击穿&缓存穿透

缓存异常会面临的三个问题:缓存雪崩、击穿和穿透。其中,缓存雪崩和缓存击穿主要原因是数据不在缓存中,而导致大量请求访问了数据库,数据库压力骤增,容易引发一系列连锁反应,导致系统奔溃。不过,一旦数据被重新加载回缓存,应用又可以从缓存快速读取数据,不再继续访问数据库,数据库的压力也会瞬间降下来。因此,缓存雪崩和缓存击穿应对的方案比较类似。而缓存穿透主要原因是数据既不在缓存也不在数据库中。因此,缓存穿透与缓存雪崩、击穿应对的方案不太一样。

2023-01-05 17:13:02 577

原创 Redis集群

从最开始的一主N从,到读写分离,再到Sentinel哨兵机制,单实例的Redis缓存足以应对大多数的使用场景,也能实现主从故障迁移。但是,在某些场景下,单实例存Redis缓存会存在的几个问题:1)写并发:Redis单实例读写分离可以解决读操作的负载均衡,但对于写操作,仍然是全部落在了master节点上面,在海量数据高并发场景,一个节点写数据容易出现瓶颈,造成master节点的压力上升。

2023-01-04 18:18:30 383

原创 Redis主从复制&哨兵模式

机器故障;容量瓶颈;QPS瓶颈一主一从,一主多从做读写分离做数据副本扩展数据性能一个maskter可以有多个slave一个slave只能有一个master数据流向是单向的,从master到slaveRedis Replication是一种 master-slave 模式的复制机制,这种机制使得 slave 节点可以成为与 master 节点完全相同的副本,可以采用一主多从或者级联结构。主从复制的配置要点:(1)配从库不配主,从库配置:slaveof 主库IP 主库端口。

2023-01-03 20:45:31 734

原创 Redis持久化

RDB 是 Redis DataBase 的缩写,即内存块照。因为Redis的数据时存在内存中的,当服务器宕机时,Redis中存储的数据就会丢失。这个时候就需要内存快照来恢复Redis中的数据了。快照就是在某一时刻,将Redis中的所有数据,以文件的形式存储起来。这就类似于照片,当你给朋友拍照时,一张照片就能把朋友一瞬间的形象完全记下来。

2023-01-03 18:00:43 1191 6

原创 Redis

开源:早起版本2.3w行基于键值对的存储系统:字典形式多种数据结构:字符串,hash,列表,集合,有序集合高性能,功能丰富10w ops(每秒10w读写),数据存在内存中,c语言实现,单线程模型。rdb和aof5大数据结构、BitMaps位图:布隆过滤器 本质是 字符串、HyperLogLog:超小内存唯一值计数,12kb HyperLogLog 本质是 字符串、GEO:地理信息定位 本质是有序集合。基于tcp通信协议,各大编程语言都支持。发布订阅(消息) Lua脚本,事务(pipeline)

2022-12-27 09:41:35 125

原创 MySQL主从搭建

通过配置数据库路由,来自动实现读写分离,这样就不需要每次读写都手动指定数据库。配置两台机器环境,创建两个文件夹,做目录映射,一个给主,一个给从。首先用docker拉取mysql镜像。编写mysql 主库的配置文件。cmd远程连接主库,执行命令。cmd远程连接从库,执行命令。编写mysql 从库配置文件。

2022-12-26 16:54:27 1462 1

原创 Docker-Compose

Docker Compose是一个能一次性定义和管理多个Docker容器的工具。Compose中定义和启动的每一个容器都相当于一个服务(service)。Compose中能定义和启动多个服务,且它们之间通常具有协同关系管理方式:使用YAML文件来配置我们应用程序的服务。使用单个命令(docker-compose up),就可以创建并启动配置文件中配置的所有服务。Docker Compose安装# 第一步:第二步:终端中使用docker-compose --version查看安装的版本。

2022-12-26 08:34:59 785

原创 Docker

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

2022-12-19 17:24:08 490

原创 SQLAlchemy

SQLAlchemy是 SQL工具包和对象关系映射器用于使用 数据库和 Python。它有几个不同的区域 ,可单独使用或组合使用。其主要组成部分如下所示, 将组件依赖项组织成层:上面两个最重要的部分 SQLAlchemy是对象关系映射器(ORM)和Core。Core包含SQLAlchemy的SQL和数据库的广度集成和描述服务,其中最突出的部分是SQL 表达式语言。

2022-12-16 08:23:19 920

原创 Flask框架

Flask是一个基于Python开发并且依赖jinja2模板(模板语言)和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

2022-12-09 21:46:19 2372 1

原创 scrapy爬虫框架

Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代

2022-12-07 19:56:11 1136

原创 selenium&xpath&打码平台

三 selenium基本使用selenium,可以操作浏览器,控制浏览器,模拟人的行为。selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题。selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器。使用:1.安装模块2.下载浏览器驱动:selenium操作浏览器,需要有浏览器(谷歌浏览器)。谷歌浏览器驱动 https://reg

2022-12-06 19:17:11 1991

原创 requests模块&代理IP池搭建&视频爬取

爬虫代理ip池,网络爬虫

2022-11-24 23:07:47 4281

原创 python项目上线

所有linxu和mac,都自带python2,阿里云的centos默认装了python3.6。修改前端向后端发ajax请求的地址:项目的地址。uwsgi 只转发动态请求,静态资源它不管。编译vue项目成html,css,js。在控制台重置实例密码,后面远程链接用。创建数据库用户,和数据库,再迁移表。

2022-11-23 20:38:19 3809 1

原创 支付宝支付&内网穿透

沙箱环境,在项目还没有上线,支付宝不能访问到我们的内网,所以做了内网穿透,将支付宝的post回调地址改成cpolar的公网地址,会自动映射到配置的本地8000端口上,这样就实现了外网间接访问内网。同步:get给前台 => 前台可以在收到支付宝同步get回调时,ajax异步在给消息同步给后台,也采用get,后台处理前台的get请求。get方法:处理前台来的同步回调(不一定能收得到,所有不能在该方法完成后台订单状态等信息操作)。1)支付接口(需要登录认证:是谁):post方法,前台提交商品等信息,得到支付链接。

2022-11-23 16:46:07 36862 16

原创 ORM外键相关

外键关联的优缺点优点:插入修改数据时,会自动查询关联表,如果数据不合法,就不能修改,保证数据不会错乱,不会出现脏数据。缺点:每次校验会消耗资源,数据量大会很慢,其实可以通过程序控制脏数据不被录入。公司一般建立外键,但是不会有约束。on_delete参数ManyToMany参数(through,db_constraint)如果ManyToMany没有指定through参数,django会自动创建第三张表,通过对第三张关系表进行操作。但是第三张表的扩展性很差,不能给第三张表添加字段。而如果不写ManyTo

2022-11-17 21:47:55 2157

原创 celery

celery是一个简单、灵活、可靠的分布式系统,用于 处理大量消息,同时为操作提供 维护此类系统所需的工具。**Celery架构**Celery的架构由三部分组成,消息中间件(message broker)、任务执行单元(worker)和 任务执行结果存储(task result store)组成。

2022-11-16 22:55:28 846 1

原创 Redis

Redis 是一个数据结构服务器。Redis 的核心是提供一系列本机数据类型,可帮助您解决从缓存到队列再到事件处理的各种问题。

2022-11-15 23:14:21 463

原创 腾讯云发送短信

上申请安全凭证,安全凭证包括 SecretID 和 SecretKey, SecretID 是用于标识 API 调用者的身份,SecretKey 是用于加密签名字符串和服务器端验证签名字符串的密钥。SecretKey 必须严格保管,避免泄露。安装 Python SDK 前,先获取安全凭证。在第一次使用云 API 之前,用户首先需要在。使用时只需要导入包即可。

2022-11-11 17:15:34 1711

原创 cgi,fastcig,wsgi,uWSGI,uwsgi

它是一个Web服务器(类似的有wsgiref,gunicorn),它实现了WSGI协议、uwsgi、http等协议。Nginx(主流):nginx是一个符合fastcgi协议的软件,处于浏览器和web程序之间,主要做请求转发和负载均衡,也可以称之为服务器中间件。它是uWSGI服务器实现的独有的协议,用于定义传输信息的类型,是用于前端服务器与 uwsgi 的通信规范。FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求。uWSGI:用c语言写的,性能比较高。

2022-11-09 22:44:40 160

原创 git使用

git使用,git安装,git命令,多分支开发,远程仓库连接,SSH协议连接

2022-11-08 22:53:30 433

原创 轮播图接口

存放公共的配置在settins文件夹下新建common_settings.py文件在dev.py文件中导入使用时直接导配置文件的变量即可from django . conf import settings # 返回的轮播图个数 queryset = SlideShow . objects . all() . filter(is_delete = False , is_show = True) . order_by('orders') [ : settings . SLIDE_SHOW_COUNT ]

2022-11-07 20:13:58 774

原创 前后台配置

使用mysqlclient,替换pymysql,mysqlclient是mysqlDB的python3.x版本。mysql使用localhost连接和使用ip地址链接有什么区别?mysql中utf8和utf8mb4有什么区别?

2022-11-05 00:05:48 491

原创 pip换源、虚拟环境搭建、luffy后台目录

在项目里的apps文件夹下创建django app。在dev.py中添加解释器环境变量。在IDE中打开项目并重构目录。

2022-11-03 20:21:54 982 1

原创 六十九、Vue3

性能的提升打包大小减少41%初次渲染快55%, 更新渲染快133%内存减少54%源码的升级使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking拥抱TypeScriptVue3可以更好的支持TypeScript新的特性Composition API(组合API)setup配置ref与reactivewatch与watchEffectprovide与inject新的内置组件FragmentTeleportSuspense其他改变新的生命周期

2022-11-02 22:50:51 457

原创 六十八、vue高级

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension (opens new window),提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

2022-11-01 22:24:45 1668 2

原创 六十七、Vue-CLI

vue的脚手架:快速帮我们创建出vue的项目。

2022-10-30 17:42:57 1256

原创 六十六、vue组件

!return {

2022-10-30 12:45:53 282

原创 XSS、CSRF、CORS简介

如果两个 URL 的 协议、端口 (如果有指定的话) 和 主机都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是“元组”。(“元组”是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。

2022-10-26 22:24:04 1013

原创 六十五、vue生命周期和发送Ajax请求

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

2022-10-26 21:14:47 1297

原创 六十四、vue基础

事件触发语法:v-on:事件名='函数名’可以简写成@事件名=‘函数名’函数传参:函数需要一个参数,但是没有传参数传少了需要两个参数,第一个是事件对象,第二个是字符串属性指令语法:v-bind:‘属性名’=’变量名‘,可以简写成:属性名=‘变量名’三 style和class四 条件渲染需求:输入成绩,回车后显示分数对应的等级。五 列表渲染模拟购物车展示小实例六 双向数据绑定适用于input标签,在标签上加上v-model=变量名,数据就变为双向绑定。登录功能小示例:七 事件处理

2022-10-25 17:14:32 16862

原创 六十三、vue介绍

1.HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览器中查看2.Ajax的出现 -> 后台发送异步请求,Render+Ajax混合3.单用Ajax(加载数据,DOM渲染页面):前后端分离的雏形4.Angular框架的出现(1个JS框架):出现了“前端工程化”的概念(前端也是1个工程、1个项目)

2022-10-24 15:18:14 899 1

原创 六十二、RBAC、simpleui介绍

将用户或组等使用者直接与对象的权限对接。用户表,权限表,中间 给用户授予某些权限即可。

2022-10-17 14:23:47 405

空空如也

空空如也

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

TA关注的人

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