第三阶段04-同步请求和异步请求,get/post,Josn,pojo,Session/Cookie,过滤器Filter
文章目录
- 同步请求和异步请求
- 客户端如何发出异步请求
- 自定义模板代码
- Get和Post请求
- 异步版本的注册和登录
- 商品管理系统(异步版本)
- 商品列表步骤:
- 前后端分离
- 为什么需要前后端分离?
- 为什么以后不再使用同步请求?
- JSON
- POJO
- 会话对象Session
- 如何记住登录状态
- 后端的MVC
- 会话管理Cookie
- 通过Cookie实现记住用户名和密码功能
- 过滤器Filter
- timstamp时间类型
- 当表字段的名和VO中的属性名不一致时的解决方案:
同步请求和异步请求
-
同步: 指单线程依次做几件事
-
异步: 指多线程同时做几件事
-
同步请求: 指客户端只有一个主线程, 主线程需要负责页面的渲染操作以及监听操作,如果需要发出请求时,主线程会停止渲染(清空页面) 发出请求, 直到服务器响应了数据之后才会将服务器响应的数据再次渲染出来,这样把原内容清空掉显示新的内容称为页面的整体刷新, 同步请求只能实现整体刷新,无法实现页面的局部刷新
-
异步请求: 指客户端主线程负责页面的渲染和监听,如果需要发出请求时,创建一个新的子线程,由子线程发出请求,请求到数据后把数据呈现在原页面的基础之上, 这种对原页面的部分内容进行改动称为页面的局部刷新, 只有通过异步请求才能实现页面的局部刷新.
客户端如何发出异步请求
- 之前发出请求的方式都是同步请求
- 通过Axios框架发出异步请求
- html页面中引入axios.js框架文件
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.min.js"></script>
-
相关代码:
//发出异步get请求 axios.get("/helloAxios").then(function (response) {//response是响应对象,response.data得到服务器响应的数据alert(response.data);v.info=response.data; });
自定义模板代码
Get和Post请求
- Get: 请求参数在请求地址的后面, 由于参数在请求地址当中是可见的所以不能传递带有敏感信息的参数,Get请求参数只能传递几k的数据
- 应用场景: 如果只传递一个参数并且非敏感信息时,一般使用get 因为方便,从字面意思理解get是获取的意思,如果这个请求是查询请求一般也都使用get
- Post:请求参数在请求体里面,参数大小没有限制
- 应用场景: 参数中有敏感信息时,上传文件时, 当传递的参数为多个参数,将多个参数封装到自定义的JS对象里面进行传递时使用Post会更方便
- 应用场景总结: 除了必须使用post的两种情况(1.敏感信息 2.文件上传) 如果传递的参数是2个参数以内 则使用get请求, 如果大于2个参数一般使用post请求, 2个参数时使用两者都可以
异步版本的注册和登录
-
准备工作:
-
创建boot08工程, 勾选3个对勾
-
创建完工程后把mysql的依赖换掉 然后刷新maven
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version> </dependency>
-
修改application.properties里面连接数据库的信息 url username 和password
-
[
-
在工程中static里面添加index.html首页 首页中准备注册和登录两个超链接
-
-
注册功能:
- 创建reg.html页面, 在页面中通过vue对页面进行管理, 页面中准备三个文本框和一个自定义按钮, 三个文本框和data里面的user对象进行双向绑定, 给按钮添加点击事件, 事件触发时向/reg地址发出异步post请求,并且把v.user传递过去, 服务器返回的值是1代表注册成功显示到首页 否则代表用户名已存在.
- 创建controller.UserController 在里面添加reg方法处理/reg请求, 创建entity.User实体类, 在reg方法的参数列表处声明User对象接收传递过来的参数(不要忘记使用@RequestBody注解修饰), 在方法中调用mapper的selectByUsername方法 通过用户名查询到数据库里面的用户信息, 如果查询到了直接给客户端响应2 代表用户名已存在, 如果没有查询到 调用mapper的insert方法 最后响应1 代表注册成功.
- 创建mapper.UserMapper,里面实现两个方法分别是selectByUsername和insert方法
-
登录步骤:
- 创建login.html页面, 在页面中通过vue对页面进行管理, 页面中准备2个文本框和一个自定义按钮, 2个文本框和data里面的user对象进行双向绑定, 给按钮添加点击事件, 事件触发时向/login地址发出异步post请求,并且把v.user传递过去, 服务器返回的值是1代表登录成功显示到首页如果返回的值是2代表用户名不存在 否则代表密码错误
- 在UserController中添加login方法处理/login请求,参数列表处声明User对象接收传递过来的参数(@RequestBody不要忘记) 在方法中调用mapper的selectByUsername方法, 通过判断分别给客户端响应1,2,3 三种情况
商品管理系统(异步版本)
- 添加商品步骤:
- 在首页里面添加超链接 请求地址 /insert.html
- 创建insert.html页面 通过vue管理页面 ,准备三个文本框 和一个自定义按钮,文本框和变量进行双向绑定, 给按钮添加点击事件, 事件出发时向/insert地址发出异步的post请求,把双向绑定的数据提交给服务器, 响应后弹出添加完成 并返回首页
- 创建ProductController,添加insert方法处理/insert请求, 创建Product实体类,在参数列表处声明 用来接收参数, 不要忘记使用@RequestBody注解, 在方法中调用Mapper的insert方法
- 创建ProductMapper, 里面添加增删改查四个方法(写法和上一个版本的写法一样)
-
商品列表步骤:
前后端分离
为什么需要前后端分离?
- 如果不使用前后端分离设计的话 后端程序员需要准备两套Controller服务于不同的前端(浏览器和手机),这样的话后端的重复性工作量比较大,所以通过前后端分离的方式可以让后端一套Controller服务于任何前端, 这样能够提高后端程序员的开发效率
为什么以后不再使用同步请求?
- 因为前后端分离后, 浏览器端获取页面需要单独发请求获取,请求到页面后再次发出请求获取数据,把得到的数据再展示到页面中, 这就是一个非常典型的页面局部刷新的需求,只有通过异步请求才能实现页面的局部刷新, 同步请求是无法实现的,所以以后工作中只要是前后端分离 就必须使用异步请求.
注册成功!
登录成功!
用户名不存在!
密码错误!
tom:18:男&jerry:20:女
JSON
- JSON是一种轻量级的数据交换格式
- 客户端和服务器之间进行复杂的数据传输时, 如果每次传输都自己定义传输格式的话太影响开发效率, JSON是一种通用的数据交换格式,使用JSON可以大大提高开发效率
[{"name":"tom","age":18,"gender":"男"},
{"name":"jerry","age":20,"gender":"女"}]
话太影响开发效率, JSON是一种通用的数据交换格式,使用JSON可以大大提高开发效率
[{"name":"tom","age":18,"gender":"男"},
{"name":"jerry","age":20,"gender":"女"}]
POJO
- pojo是简单的Java对象, 是entity实体类、值对象VO和数据传输对象DTO的总称
- entity实体类: 通常实体类的属性和表字段是一一对应的
- VO ValueObject值对象: 从数据库里面查询出来的数据 通过值对象对其进行封装
- DTO DataTransferObject数据传输对象: 客户端给服务器传输多个参数时,通过DTO进行封装
会话对象Session
-
服务器会针对每一个客户端在内存中创建一个会话对象, 这个会话对象供同一个客户端的多次请求共享使用, 保存在里面的数据可以给同一个客户端的每一次请求使用.
-
相关方法:
- session.setAttribute(“key”,value); 往会话对象中保存数据
- session.getAttribute(“key”); 从会话对象中获取数据
- session.removeAttribute(“key”); 从会话对象中删除数据
如何记住登录状态
- 客户端登录成功时, 把当前登录的用户对象保存到会话对象里面
- 任何客户端显示首页时都发请求 从会话对象中获取登录成功时保存的用户对象, 如果登录过可以得到用户对象, 如果没有登录过则得到的是个null, 此时就可以通过判断是否拿到了用户对象 来决定当前客户端有没有登录过
后端的MVC
- 将实现一个业务功能的所有代码划分为三部分(包含前端)
- 前端MVC: 是将实现前端业务功能的代码划分为三部分(不包含后端)
- M: Model 模型,指数据模式, 对应的是工程中Mapper相关代码
- V: View 视图, 对应的是工程中前端页面相关代码
- C: Controller控制器, 对应的是工程中Controller相关代码
会话管理Cookie
- 客户端和服务器之间进行数据传输,遵循的是HTTP协议, 此协议是无状态协议(一次请求对应一次响应)响应完之后断开连接, 服务器是无法跟踪客户端的请求的, 通过Cookie技术可一个在客户端第一次请求服务器时服务器给客户端创建一个标识, 之后客户端每次发请求时都会带上这个标识 这样的话服务器就可以识别此客户端了(类似于打孔式的会员卡), 但是由于Cookie的形式数据是保存在客户端的, 存在被篡改的风险, 通过Session可以解决此问题, 因为Session的数据是保存在服务器的(类似于银行卡).
-
通过会话管理技术可以保存服务器和客户端之间的数据(比如让客户端记住用户名和密码,让服务器记住当前客户端的登录状态), 数据库保存的是用户的数据
-
Cookie和Session对比
- Cookie: 数据保存在客户端(类似打孔式的会员卡)
- 保存时间: 默认保存在浏览器的内存中, 当前浏览器关闭时数据会清除,可以设置任意保存时间,设置时间后数据会保存到磁盘中, 时间到了之后自动清除
- 数据类型: 只能保存字符串类型的数据
- 数据量: 由于cookie的数据需要每次发请求时保存在请求头里面,所以数据量只能保存几k的数据
- 应用场景: 需要长时间保存的客户端数据,比如:记住用户名和密码
- Session: 数据保存在服务器(类似银行卡)
- 保存时间: 数据保存在服务器内存中,默认保存半个小时,可以修改时间,但不推荐.(因为服务器只有一个所有客户端的数据都保存在这一个服务器里面这样服务器保存时间太久的话压力太大)
- 数据类型: 可以保存任意对象类型
- 数据量: 没有数据大小的限制,但是不建议保存太大的数据(因为服务器只有一个所有客户端的数据都保存在这一个服务器里面这样服务内存器压力太大)
- 应用场景: 对安全性要求较高的,但是不需要保存时间太久的数据, 比如记住客户端的登录状态
- Cookie: 数据保存在客户端(类似打孔式的会员卡)
通过Cookie实现记住用户名和密码功能
-
在login.html页面添加多选框记住用户名和密码
-
在登录成功时创建Cookie对象把用户名和密码保存到Cookie里面 下发给客户端
- 在login.html页面中 从cookie里面把用户名和密码取出 并赋值给和页面进行绑定的变量
过滤器Filter
-
使用过滤器可以让客户端请求到资源之前或之后 经过过滤器, 这样可以把请求多个资源时执行的相同的代码写在过滤器里面, 这样只需要写一次,起到了代码复用的作用
-
如何使用过滤器:
-
创建Filter.java类文件
-
在XXXAplication.java 类文件中添加 组件扫描注解
-
在过滤器中书写以下代码:
package cn.tedu.coolshark.filter;import cn.tedu.coolshark.pojo.vo.UserVO;import javax.servlet.*; import javax.servlet.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException;@WebFilter(filterName = "MyFilter",urlPatterns = {"/insertProduct.html","/insertBanner.html","/admin.html","/product/delete"}) public class MyFilter implements Filter {//过滤器初始化方法public void init(FilterConfig config) throws ServletException {}//过滤器销毁时执行的方法public void destroy() {}//请求资源之前和之后执行的方法@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {//因为要用到子类类型中的方法 所以进行类型强转HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;//从请求对象中获取当前客户端对应的会话对象HttpSession session = req.getSession();//从会话对象中获取登录成功时保存的用户对象UserVO user = (UserVO) session.getAttribute("user");if (user!=null){//登录过 放行允许客户端请求资源chain.doFilter(request, response); //请求资源}else{//未登录 禁止请求资源 并显示登录页面res.sendRedirect("/login.html");}} }
-
-
urlPatterns的配置方式:
- 精确匹配: /insertBanner.html /insertProduct.html /product/delete
- 后缀匹配: *.jpg *.html *.xxxx
- 路径匹配: /user/* /product/*
- 全部匹配: /* 匹配网站中所有资源
timstamp时间类型
-
如果数据库表中的某条数据发生改变时,不管改变的是哪一个字段 这个timestamp 类型的数据 会自动修改成当前的系统时间
-
关闭timestamp类型的自动更新功能
use cs;
alter table product change created created timestamp not null default current_timestamp;
-
打开timestamp类型的自动更新功能
alter table product change created created timestamp not null default current_timestamp on update current_timestamp;
当表字段的名和VO中的属性名不一致时的解决方案:
-
查询数据时通过别名的方式解决(不能复用)
-
如果不一致仅仅是因为命名规范不一致的情况下, 在application.properties里面添加以下配置即可解决
mybatis.configuration.map-underscore-to-camel-case=true
-
通过resultMap手动映射的方式解决(可以复用)
相关文章:
第三阶段04-同步请求和异步请求,get/post,Josn,pojo,Session/Cookie,过滤器Filter
文章目录同步请求和异步请求客户端如何发出异步请求自定义模板代码Get和Post请求异步版本的注册和登录商品管理系统(异步版本)商品列表步骤:前后端分离为什么需要前后端分离?为什么以后不再使用同步请求?JSONPOJO会话对象Session如何记住登录状态后端的MVC会话管理Cookie通过…...
Spark学习:spark相似算子解析
spark算子 一、Map、Flatmap和MapPartition二、repartition和coalesce三、reduceByKey和groupByKey四、collect、take和first一、Map、Flatmap和MapPartition 算子作用map接收一个高阶函数f,对每个算子进行f操作flatmap接收一个高阶函数f,对每个元素进行f操作,形成一个大的集合…...
MySQL操作数据表-----------创建数据表(一)
在MySQL中创建数据库完成后,需要使用USE 数据库名的形式指定进行操作的数据库,然后再去执行创建数据表的SQL语句,也可以直接使用数据库名.数据表名的形式创建数据表。 1.创建空数据表 语法格式:CREATE TABLE [IF EXISTS] 表名 &…...
Java “框架 = 注解 + 反射 + 设计模式” 之 注解详解
Java ”框架 注解 反射 设计模式“ 之 注解详解 每博一文案 刹那间我真想令时光停住,好让我回顾自己,回顾失去的年华,缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小女孩。让我追悔少年时代,我心灵的愚钝无知,它轻易…...
特斯拉4D雷达方案首次曝光!高阶智驾市场比拼安全冗余
随着L2级智能驾驶进入普及阶段,L3/L4级赛道正在成为各家车企的下一个竞争焦点。背后的最大难题,就是如何在成本可控的前提下,保证足够的安全。 高工智能汽车研究院监测数据显示,2022年度中国市场(不含进出口ÿ…...
Echarts 每个柱子一种渐变色的象形柱状图
第023个点击查看专栏目录本示例是解决每个柱状图的每一个柱子都呈现一种渐变色,每个柱子的颜色都不同。这里同时采用了象形的柱状图效果。 文章目录示例效果示例源代码(共125行)相关资料参考专栏介绍示例效果 示例源代码(共125行&…...
叠氮试剂79598-53-1,6-Azidohexanoic Acid,6-叠氮基己酸,末端羧酸可与伯胺基反应
●中文名:6-叠氮基己酸●英文名:6-Azidohexanoic Acid,6-Azidohexanoic COOH●外观以及性质:西安凯新生物科技有限公司供应的6-Azidohexanoic Acid浅黄色或者无色油状,叠氮化物可使用铜催化的Click化学与末端炔烃共轭&…...
Nginx网站服务——编译安装、基于授权和客户端访问控制
文章目录一、Nginx概述1.1、Nginx的特点1.2、Nginx编译安装1.3、Nginx运行控制1.4、Nginx和Apache的区别二、编译安装Nginx服务的操作步骤2.1、关闭防火墙,将安装nginx所需软件包传到/opt目录下2.2、安装依赖包2.3、创建运行用户、组(Nginx 服务程序默认…...
Spring Boot 版本升级2.2.11.RELEASE至2.7.4
2.2.11.RELEASE > 2.7.4项目更新spring-boot-starter-parent 主依赖,导致项目跑不起了日志也没有输出有用信息,自己查看源码调试启动入口打断点,一步步进入方法定位项目停止代码我的项目执行到SpringApplication.class 的152行代码会停止项…...
OpenShift 4 - 使用辅助安装器安装单节点 OpenShift
文章目录单节点 OpenShift 和 OpenShift 辅助安装器单节点 OpenShiftOpenShift 辅助安装器使用辅助安装器安装单节点 OpenShift本文使用的安装环境准备环境在宿主机上安装 KVM 环境创建 SSH 证书根据集群配置,用辅助安装器生成 Discovery ISO用 Discovery ISO 启动 …...
Allegro如何快速锁定整板测试点操作指导
Allegro如何快速锁定整板测试点操作指导 在做PCB设计的时候,会需要给整板添加测试点,用于飞针测试,如下图 在测试点添加好之后,文件输出之前需要把测试点全部锁定,避免因为测试点模具开好,测试点被移动的情况出现 如果逐个锁定Via,容易遗漏 Allegro支持快速锁定整板测…...
系统分析师---知识产权标准化思维导图
保护范围以及对象(3星) 著作权法:不用申请,作品完整即保护绘画摄影作品,原件持有人只是所有权与展览权,著作权归原作者 专利法:专利权需要申请商标法:商标权需要申请反不正当竞争法…...
HiEV洞察 | 特斯拉HW4.0再爆猛料,高精定位、雷达均有变动
作者 | 查理斯 编辑 | 王博特斯拉 HW4.0 消息传出后,有人爆料说在硬件层面发生了巨大变化,引发行业轰动。大家都在猜测HW4.0 具体做了哪些改动。 2月16日,Twitter用户greentheonly爆出HW4.0的主板拆解照片。2月18日又爆出毫米波雷达的拆解照片…...
潜伏的 Linux Rootkit:Syslogk
Rootkit 是非常危险的恶意软件,一旦侵入就很难被发现。开发 Rootkit 通常更加困难,很多攻击者都倾向于重用开源项目。 Adore-Ng 是一个相对较老的、开源的 Linux 内核 Rootkit,最初针对内核 2.x 版本开发,但目前已更新为针对内核…...
JVM总结
1. 内存结构 线程私有区 程序计算器 作用:是一块较小的内存空间,存储的是当前线程所执行的字节码文件的序号特点:线程私有,不会出现内存空间溢出 虚拟机栈 虚拟机栈是管理JAVA方法执行的内存模型,每个方法执行时都…...
AOF:redis宕机,如何避免数据丢失
由于redis是基于内存的数据库,一旦宕机,数据就会丢失?如何解决? 目前,Redis 的持久化主要有两大机制,即 AOF(Append Only File)日志和 RDB(Redis DataBase) 快照。 AO…...
LC-3—MIO、MMIO、Caller Save、Callee Save
LC-3—MMIO、Caller Save、Callee SaveMMIOCaller Save、Callee Save举个例子MMIO MMIO(Memory Mapped I/O)是一种在系统内存中映射I/O端口的技术,它允许设备直接访问内存中的特定地址,从而实现I/O操作。MMIO技术可以提高I/O操作…...
SQL注入报错注入之floor()报错注入原理分析
简介 对于SQL注入的报错注入通常有三个函数需要我们掌握: extractValue(xml_frag, xpath_expr)updateXML(xml_target, xpath_expr,new_xml)floor() 对于extractValue和updateXML函数来说比较好理解,就不做解释了,这里只对floor函数的报错注…...
2023CS双非保研985经验分享(南大、华科、中科大科学岛、国防科大、西交、中南、深圳大学、北邮、中科院等)
前言: 2022保研以来,因为自己的双非背景,要与985、211的排名靠前的计科大佬竞争,不自信、焦虑无时无刻的包围着我;所幸,一路以受到了许多学长、学姐耐心的帮助,也有很多保研的同学一路互相支撑。…...
Shell中的IFS
IFS是shell的内置变量,IFS是一个字符串,里面的每一个字符都会用来作为分隔符进行单词分割。 IFS变量只在当前shell起作用。 一、对$*的影响 先做参数替换把$*替换成参数列表。相当于args[] 然后下面分两种情况: (1)…...
Java学习线路图--书籍推荐
----基础---- 《Java从入门到精通》 ----进阶---- 一 《Java项目开发全程实录》《Java开发实例大全(基础篇)》《Java开发实例大全(提高篇)》 二 《Java Web从入门到精通》《Java Web项目开发全程实录》《Java Web开发实例大…...
【GO】k8s 管理系统项目23[前端部分–工作负载-Pod]
k8s 管理系统项目[前端部分–工作负载-Deployment] 1. 代码部分 1.1 准备工作 由于Pod页面和Deployment内容差不多.那么就直接把Deployment的内容复制过来.再做修改. 替换Deployment为Pod替换Deploy为Pod替换deployment为pod替换deploy为pod禁用新增的按钮,删除新增方法,表…...
rabbitmq在linux系统下安装步骤
第一步:登录官网 官网地址:www.rabbitmq.com,点击Get Started 重要信息:RabbitMQ Tutorials手册,描述了工作模式 第二步:点击Download Installation下载 重要信息:rabbitmq是用erlang语言开发的࿰…...
阿里测试员晒薪资条,看完真的扎心了...
前几天,有位老粉私信我,说看到某95后学弟晒出阿里的工资单,他是真酸了…想狠补下技术,努力冲一把大厂。 为了帮到他,也为了大家能在最短的时间内做面试复习,我把软件测试面试系列都汇总在这一篇文章了。 …...
内网渗透辅助工具集Yasso
目录 介绍 工具优势 程序功能模块 目前已有用功能模块 使用例子 工具下载</...
Spring笔记(1):概述
1、什么是Spring? Spring是最受欢迎的企业级Java应用程序开发框架,使用它创建性能好、易于测试、可重用的代码。Spring是一种轻量级的框架。Spring框架的核心特性是开发任何Java应用程序,其目标是使得J2EE开发变得更容易,通过启用…...
工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪
焊接已发展为制造业中的一种重要的加工方法,广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂,焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时,…...
使用linux部署项目步骤
文章目录前言一、服务器环境配置二、数据库导入三、项目打包1、修改项目中的访问路径2、修改db.properties的数据库访问路径3、打包4、修改配置,启动服务四、测试总结前言 今天学习了在服务器中部署项目,记录一下 一、服务器环境配置 首先要安装VMware&…...
pt02-list-tuple-dir
容器类型 通用操作 数学运算符 (1) 用于拼接两个容器 (2) 用原容器与右侧容器拼接,并重新绑定变量 (3) * 重复生成容器元素 (4) * 用原容器生成重复元素, 并重新绑定变量 (5) !:依次比较两个容器中元素,一但不同则返回比较结果。< < > > 意…...
高端电器新十年,求解「竞速突围」
竞争激烈的高端电器品牌们,平时王不见王,但也有例外。海尔、博西、海信、创维、方太、老板等等近乎中国电器行业所有一线品牌副总裁级别以上高层,2月22日都现身于上海,来参加一场由红星美凯龙攒起来的高端电器局,2023中…...
做旅游网站的目的与意义/能让网络非常流畅的软件
近日,特斯拉或将在其HW4.0硬件系统配置一枚高精度4D毫米波雷达的消息在外网刷屏。据分析,“纯视觉”信仰者马斯克之所以做出这样的决定,一方面是减配了雷达的特斯拉自动驾驶,表现不尽如人意;另一方面也跟毫米波雷达的技…...
如何修改网站模版/什么叫seo
下面的学习关于脚本,而学习脚本,变量就显得尤为重要,首先,要对变量有一个初步的认识:只对当前的SHELL有效的变量是本地变量,; 还有就是系统环境变量;变量的使用,可以简化脚本&#x…...
企业网站资料大全/域名估价
背景:使用过 THINKPHP 的 PHPer 都知道有字段排除功能,个人觉得有时候还是比较好用的,所以分享一下!第一次分享,如有不好之处,请大神指教这里面主要是使用到 laravel 里面的 Macros;1、在 app\P…...
网站图片列表怎么做/seo排名优化厂家
音频处理主要适用于基于声音的处理、分析和建模,而Python作为当前最流行的编程语言之一,在音频处理方面也提供了大量的库和框架,本文整理了其中12个常用音频处理库,以供学习研究之用。1、eyeD3eyeD3是一个处理音频文件的Python工具…...
中国建设网官方网站客服电话/北京seo网站推广
用css样式,为表格加入边框 Table 表格在没有添加 css 样式之前,是没有边框的。这样不便于我们后期合并单元格知识点的讲解,所以在这一节中我们为表格添加一些样式,为它添加边框。 在右侧代码编辑器中添加如下代码: <…...
家政公司网站模板/百度竞价点击价格公式
Python使用pip命令安装时,默认使用的源是国外的网站,而国内访问比较慢,此时要换源,以下两种方法换源。 方法一(解决一次安装): 阿里源 pip install 要安装的包名 -i http://mirrors.aliyun.com/pypi/simple/ --trust…...