javascript 模板引擎
使用场景
在实际开发中,一般都是使用动态请求数据来更新页面,服务器端通常返回json格式的数据,正常操作是我们手动的去拼装HTML,但麻烦且容易出错,因此出现了一些用模版生成HTML的的框架叫js模板引擎如:jquery-tmpl,artTemplate等,它们能够实现动态的修改DOM数据,使用简单易懂的语法结构,通过JSON的格式传递和绑定数据。
模板引擎好处
1、实现动态修改DOM数据
2、实现模板的复用
服务端返回数据格式常见的格式JSON
{name:"zhang",age:18,address:"山西省" }
{code:0,list:[{name:"zhang",age:18,address:"山西省"},{name:"wang",age:10,address:"河北省"},{name:"li",age:45,address:"北京省"}] }
jquery-tmpl template
介绍
jquery-tmpl
是基于JavaScript框架的jquery 插件,用来快速渲染数据。
下载地址
GitHub - BorisMoore/jquery-tmpl: The original official jQuery Templates plugin. This project was maintained by the jQuery team as an official jQuery plugin. It is no longer in active development, and has been superseded by JsRender.
说明
GitHub是一个开源的图外代码托管服务平台。它以各种不同的编程语言托管您的源代码项目,并跟踪每次迭代所做的各种更改。该服务可以通过使用git(一种在命令行界面中运行的修订控制系统)来完成此操作。
cdn 地址
-
http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js
-
http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js
快速体验
1、引入相关文件,准备数据
注意:该模板引擎基于jquery,所以文件顺序为:1- jquery 2-jquery-tmpl
示范:
<!-- 相关文件,注意版本和数据,以下版本为示例 --> <script src="js/jquery1.42.min.js"></script> <script src="js/jquery-tmpl.js"></script> <!-- 数据 --> <script>var info ={name:"zhang",age:18,address:"山西省"} </script>
2、准备DOM
<div class="mine"><h2>个人信息</h2><div class="info" id="info"></div> </div>
3、准备tmpl模板
注意:type类型默认为text/javascript。此处需要更改为text/x-jquery-tmpl。
<script type="text/x-jquery-tmpl" id="info_tmpl"><p>姓名:${name}</p><p>年龄:${age}</p><p>地址:${address}</p> </script>
4、渲染模板
// 方式一 var infoTmpl = $("#info_tmpl").tmpl(info); $("#info").html(infoTmpl) // DOM的html为模板 // 方式二 var infoTmpl = $("#info_tmpl").tmpl(info); infoTmpl.appendTo($("#info")) // 模板追加加到DOM
常用语法
-
${} 或者 {{= }} 输出变量 可以使用表达式
<span>${name}</span> // ${具体key值} 该写法必须是数组对象里的key或者each的别名, 纯对象 该写法不生效 <span>{{= Number(age)+1}}</span>
-
{{each}} 循环,$value $index访问迭代变量 也可以自定义迭代变量
{{each departs}}<div>{{= $value}}</div> {{/each}}
{{each(i,user) users}}<div>${i+1}:{{= user.name}}</div><div>${i+1}:{{= user.age}}</div><div>${user.name}</div>{{/each}}
-
{{if}} {{else}}
{{if Status}}<span>Status${Status}</span> {{else App}}<span>App${App}</span> {{else}}<span>None</span> {{/if}}
{{if hasMoney && age<20}}<h3>有钱</h3> {{/if}}{{if hasMoney && age<20 && name=="zhao"}}<h3>有钱</h3> {{/if}}
注意:不支持复杂的if条件,可以使用函数来判断 // 条件是函数 {{if isMoney(hasMoney) && age<20}}<h3>有钱</h3>{{/if}}
function isMoney(hasMoney){ // 实参必须存在return hasMoney? true:false }
// 函数多个传参 {{if isMoney(hasMoney,age) && name=="zhao"}}<h3>有钱</h3> {{/if}}
function isMoney(hasMoney,age){if(hasMoney && age>=1){return true}else{return false} }
-
tmpl()
-
准备DOM
<div class="user-list" id="user_list"></div>
-
准备模板
<script type="text/x-jquery-tmpl" id="user_list_tmpl">{{each list}}<li>{{= $value}}</li>{{/each}}</script>
-
渲染模板
内部js 注意以下代码需要添加到 jquery-tmpl 模板下面
外部js 注意 js 文件位置要放在jquery-tmpl 模板下面
var arr = ["1","2","3","4"] $(模板).tmpl(data) // 将数据渲染到模板里 var listTmpl = $("#user_list_tmpl").tmpl({"list":arr});// 将模板添加到DOM里 listTmpl.appendTo('#user_list'); // $("#user_list").html(listTmpl)
-
使用场景
-
渲染简单数组和简单对象
<ul id="data_arr"></ul>
<script type="text/x-jquery-tmpl" id="data_arr_tmpl">{{each data}}<li>{{= $value}}</li><!-- <li>{{= $index}}:{{= $value}}</li> -->{{/each}} </script>
<script>// 对于简单数组而言,必须使用each循环var dataArr = ["公章","财务章","合同章","法人章"]// 对于简单对象而言,可直接将对象放入模板,根据key值渲染,若使用each做循环时,需自定义key,形式如:{"data":dataArr}var dataArr = {"name":"zhang","age":20}// 渲染DOMvar arrTmpl = $("#data_arr_tmpl").tmpl({"data":dataArr})$("#data_arr").html(arrTmpl) </script>
-
渲染数组对象
<ul id="data_arr_obj"></ul>
<script type="text/x-jquery-tmpl" id="data_arr_obj_tmpl">{{each data}}<li>${name}的年龄是${age}</li> <!-- {{= $value.name}} -->{{/each}} </script>
<script>var dataArray = [{name:"zhang",age:18},{name:"wang",age:22},{name:"ding",age:8},{name:"zhao",age:40}]var listTmpl = $("#data_arr_obj_tmpl").tmpl({"data":dataArray})$("#data_arr_obj").html(listTmpl) </script>
-
渲染复杂对象
<ul id="data_obj"></ul>
<script type="text/x-jquery-tmpl" id="data_obj_tmpl">{{each data}}<li>{{= $index}}——${name}的年龄是${age}</li>{{/each}} </script>
<script>var dataArray = {"A":{"name":"对象A","age":18}, "B":{"name":"对象B","age":18},}var listTmpl = $("#data_obj_tmpl").tmpl({"data":dataArray})$("#data_obj").html(listTmpl) </script>
artTemplate
官网文档
介绍 - art-template
快速上手
1、引入相关文件,并引用
访问以下地址复制文件内容保存至template-web.js
https://unpkg.com/art-template@4.13.2/lib/template-web.js
<script src="js/template-web.js"></script> <script>var infoData ={name:"zhang",age:18,address:"山西省"} </script>
2、准备DOM
<div class="mine"><h2>个人信息</h2> <div class="info" id="info"></div> </div>
3、准备模板
注意type类型 text/html
<script id="tpl-user" type="text/html"><h2>{{name}}的年龄是{{age}}住在{{address}}</h2> </script>
4、渲染模板
var tem = template("tpl-user",infoData) template(模板id,数据) document.getElementById("info").innerHTML = tem
常用语法
输出变量 或者使用表达式
{{value}} {{data.key}} {{data['key']}} {{a ? b : c}} {{a || b}} {{a + b}}
示例:
<script id="tpl-user" type="text/html"><h2>{{render['name']}}的年龄是{{render.age>15?render.age+1:20}}住在{{render.address}}</h2> </script> <script>var infoData ={name:"zhang",age:18,address:"山西省"} var tem = template("tpl-user",{"render":infoData}) //render 渲染的意思info.innerHTML = tem </script>
遍历
$index 和 $value 迭代索引
{{each target}}{{$index}} {{$value}} {{/each}}
遍历指定变量名称
语法: each 数组 值 索引
<script id="test" type="text/html"><h1>{{title}}</h1><ul>{{each list val i}}<li>索引 {{i + 1}} :{{val}}</li>{{/each}}</ul> </script>
条件判断
{{if age == "21"}}<span>21</span> {{else if age == "23"}}<span>23</span> {{else}}<span>20</span> {{/if}}
渲染模板
template('模板id名', 数据)
<ul id="user_list"></ul>
<script type="text/html" id="user_list_art">{{each list val i}}<li>{{val.name}}</li>{{/each}} </script>
var dataArray = [{name:"zhang",age:18},{name:"wang",age:22},{name:"ding",age:8},{name:"zhao",age:40} ] // 将数据渲染到模板里 var listArt = template("user_list_art",{"list":dataArray}) // 将模板渲染添加到DOM里 document.getElementById("user_list").innerHTML = listArt
使用场景
渲染数组对象
<ul id="user_list"></ul>
<script type="text/html" id="user_list_art">{{each list}}<li> {{$index}} {{$value.name}} {{$value.age}}</li>{{/each}} </script>
<script type="text/html" id="user_list_art">{{each list val i}}<li>{{i}} {{val.name}} {{val.age}}</li> </script>
var dataArray = [{name:"zhang",age:18},{name:"wang",age:22},{name:"ding",age:8},{name:"zhao",age:40} ] var listArt = template("user_list_art",{"list":dataArray}) document.getElementById("user_list").innerHTML = listArt
模板引擎案例
1、后台管理系统操作
2、答题小程序
JSON
JSON中国 | JSON中文网
什么是JSON
1、JSON 是 JavaScript Object Notation 的缩写,是一种轻量级的数据交换格式。
2、它是一种数据格式,且是通用的数据格式,它不属于任何编程语言,但可以在不同编程语言(js,php , c , python等)中进行解析和生成。即是一种通用的数据格式。
3、它是随ajax 诞生的一种数据交换格式。早期的ajax 传递数据是建立在XML数据之上,但由于XML数据结构烦琐,冗长,且数据访问过程复杂,浏览器兼容问题严重,导致后续被json 代替。
JSON使用场景
1、与服务器数据交互,给服务器发送数据,获取服务器数据(ajax)
2、存储应用程序配置,如本地存储(localStroge)
JSON基本语法
它和 js 中表示数据的某些语法相同,但有区别:json 不支持变量。函数,对象实例。
它支持三种类型的值:
-
简单值:数字(Number)、字符串(String,双引号中,不支持单引号)、布尔类型(Boolean)、null类型;
“hello” // json字符串表示方式,必须是双引号,单引号报语法错误
-
对象值:用大括号(“
{}
”)表示,由key、value组成,key是字符串类型,并且必须添加双引号,值可以是简单值、对象值、数组值;{"name":"lihuawei"}
-
数组值:用方括号(“
[]
”)表示,数组的值可以是简单值、对象值、数组值;[{"Name" : "Jim", "Age" : 22} , {"Name" : "Jerry", "Age" : 23}]
JSON解析
不同的编程语言都有针对json的解析器和序列化器。
在 js 中 提供了一个JSON对象,,它有两个方法 stringify() 和 parse ()。用来转换 js 对象和 json 字符串。
-
JSON.stringify(): 序列化操作,将 JavaScript对象转换成 JSON字符串。
-
JSON.prase():反序列化操作,将 JSON字符串解析成 JavaScript值。
为什么要序列化
涉及到知识点
1、序列化和反序列化概念
2、数据结构中栈和堆的概念
3、数据类型的存储方式,重点引用类型数据的存储方式
4、垃圾回收机制
序列化和反序列化概念
序列化:将一个在内存中的变量转换为可保存或者可传输的字符串的过程
反序列化:在适当时候将字符串再转化成原来的变量使用
栈和堆的概念
数据结构是计算机存储、组织数据的方式。常用的数据结构有:数组、栈、堆、列表、链表、树、图、散列表。
栈相当于电脑内存,运行速度快,但存放内容少。由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
堆相当于电脑硬盘,读写速度慢,但存放内容多。一般由程序员分配释放。堆中存放的数据对应栈中的地址。
数据类型的存储方式
对于基本数据类型(Number,Boolean,String,undefined,null,symbol),存在栈内存中;
对于引用数据类型(object , array,function等),存在堆内存中。
在栈中,一旦变量不再使用就会被自动清除掉,但堆中有对象时,会相应的在栈中存放一个堆的地址,当调用数据时,去堆中调取对应的数据。
如果栈中的地址丢失,导致找不到堆中的数据,称为内存泄漏。
如果p1 修改, p 也会随之变化,因为两个地址(变量)同时指向一个内存(数据)
垃圾回收机制(GC garbage collecation)
即执行环境会负责管理代码执行过程中使用的内存。
JavaScript中的垃圾回收机制是自动的,它的主要目的是为了释放不再使用的变量和对象的内存空间,从而避免内存泄漏和浪费。
原理:垃圾收集器按照固定的时间间隔,周期性寻找那些不再使用的变量,将其清除或者释放内存。
常用的垃圾回收机制:标记清除和引用计数。
标记清除
当一个变量不再被使用时,JavaScript引擎会将其标记为“待回收”。当垃圾回收器开始运行时,它会遍历所有的变量,将那些被标记为“待回收”的变量清除掉。这个过程被称为“标记清除”。
引用计数
即记录每个值的引用次数,如果一个值的引用次数为0(null),表示可以将这块内存释放
const arr = [1,2] // arr 变量引用次数为1,占内存 arr = null // 引用为0,释放内存
对象的深拷贝和浅拷贝
-
深拷贝:在堆内存中重新开辟一个存储空间,完全克隆一个一模一样的对象,不会影响到源对象;
-
浅拷贝:不在堆内存中重新开辟空间,只复制栈内存中的引用地址,会影响到源对象。
浅拷贝
let a = {name:"z",adress:'sx' }; let b = a; a.name = "zm" console.log(a) // name:zm console.log(b) // name:zm
深拷贝
1、es6 展开运算符
let a = {name:"z",adress:'sx' }; let b = {...a}; a.name = "zm" console.log(a) // name:zm console.log(b) // name:z
2、JSON.parse( JSON.stringify() )
注意,不能拷贝对象内的函数
let a = {name:"z",adress:'sx',do(){console.log(this.name)} }; let b = JSON.parse( JSON.stringify(a) ); a.name = "zm" console.log(a) // name:zm 有do console.log(b) // name:z 没do
3、数组的深拷贝 slice 和 concat 方法
js对象 json对象 json字符串 区别
js 对象: 普通对象,键值对方式,属性不加引号
json 对象: 键值对方式,属性加双引号 ,后端语言可以支持的,即把json 内容转化为自己能处理的数据存储格式,不再担心不同语言有不同的语法和数据存储方式了,以前传输用XML,但它规范比较复杂。
json 字符串: 单引号或者双引号引起来的 ,后端语言可以支持的
AJAX
简介
ajax 全名 async javascript and XML
ajax 是一种技术,通过ajax 可以在浏览器中向服务器发送http请求完成交互
优势:无刷新页面获取数据
缺点:存在跨域问题
网络相关概念
IP 地址
通过ip 地址找到特定的服务器,使用该服务器提供的服务
域名
由于ip地址是一串数字,难记忆,所以有了域名,即给ip地址起了地名,方便查找服务器。
查看本机ip地址 (自己的电脑就是一个服务器) , 搜cmd ,进入命令行工具
ipconfig
查看百度ip 地址,域名的背后是ip地址
ping www.baidu.com // http://110.242.68.3/
DNS 域名解析服务器
它提供了域名和ip地址的映射关系
访问服务器的流程(浏览器输入地址):先找本机Hosts 文件(C:\Windows\System32\drivers\etc) 再找DNS , 再找到对应服务器
端口
用来区分一台服务器上提供的不同服务。
即服务器不止提供一个服务,不同的服务对应不同的端口。
实际开发中当一次运行多个项目时,需要通过指定不同端口来运行对应的项目
比如:https://www.baidu.com:80 需要使用该百度域名映射的IP地址对应的服务器的80端口所提供的服务
总结
ip 用来查找服务器
域名方便记忆,
DNS维护域名和ip地址的映射关系
端口区分一台服务器上的不同服务
通信协议
客户端访问服务器,通过ip地址和端口找到服务器了即交互,具体怎么交互,规则是什么,就是这里所说的协议
常见的协议
1、HTTP , HTTPS 超文本传输协议
2、FTP 文件传输协议
3、SMTP 简单邮件传输协议
HTTP 协议
计算机网络 —— 应用层详解_code配上格子衫的博客-CSDN博客
简介
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)。
该协议详细规定了浏览器和万维网服务器之间相互通信的规则。比如:charset=utf-8
HTTP默认的端口号为80,HTTPS的端口号为443。
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上。是一种应用层协议,由请求和响应构成
协议特点
通信规则内容
1、请求
请求行: 请求类型(get/post/put等)/ url / http 版本
请求头: Host Cookie Content-Type User-Agent
请求体:
2、响应
请求行: 协议版本 / 状态码 / 状态字符串 ok
请求头: Content-Type Content-length Content-encoding
请求体:
搭建web本地测试服务器
json-server 是一款基于Node.js的服务器,一般用在前后端分离的项目中,即一个在前端本地运行,可以存储json数据的server。为前端开发人员提供了一个高仿真的RESTFul后台服务。
通俗来说,就是模拟服务端接口数据,前端人员可以不依赖API开发,而在本地搭建一个JSON服务,自己产生测试数据。
RESTFul:是一种API的风格,基于REST构建的API就是Restful风格,大白话,后台接口的一种规则
安装nodejs
Node.js官网(https://nodejs.org)
node -v // 检测node版本 开始搜索cmd 打开命令行工具
下载安装json-server
使用npm全局安装json-server:
npm install json-server -g
检测是否安装成功
json-server -v
创建数据库
-
新建文件夹,位置不限,建议是和项目同级目录下新建数据库文件夹,一般命名为db (data base 即数据库)
-
在db 文件夹中新建json 文件,文件命名可自定义,一般命名为db/ mock.json
注意数据格式:
{"newsList":[], // 新闻列表接口"bannerList":[], // 广告接口"userInfor":[] // 用户信息接口 }
例子:
{"userList": [{"id": 1,"telephone": "13800000000","userName": "张三","idCard": "443426189012211141","vipRank": "","roleName": "","projectName": "项目名","accountStatus": "","createTime": "2018-12-12 15:00"}] }
启动数据库
进入json 文件所在的目录 db,执行以下命令:
json-server --watch db.json // 不指定端口 注意你的json文件的名称是否是db,换自己的
json-server --watch db.json [--port 5001] // 运行对应的json文件,注意此处json文件名称是自定义的,[] 表示可选,可指定端口
在浏览器中输入地址http://localhost:5001/userList就能看到输出db.json中的接口数据
优化启动脚本
如果觉得启动服务的代码长,可在该数据库文件夹中生成package.json 文件中设置别名
执行以下命令,可自动生成package.json(npm 包管理配置文件)
npm init -y
在package.json 中设置别名 ,即修改 scripts 选项
{"name": "db","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","mock":"json-server --watch db.json" },"keywords": [],"author": "","license": "ISC" }
运行以下命令即可
npm run mock
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/21ca4cec7cb7bf4df3b3c03f53ddd739.png)
javascript 模板引擎
使用场景 在实际开发中,一般都是使用动态请求数据来更新页面,服务器端通常返回json格式的数据,正常操作是我们手动的去拼装HTML,但麻烦且容易出错,因此出现了一些用模版生成HTML的的框架叫js模板引擎如:jq…...
![](https://img-blog.csdnimg.cn/img_convert/1f413277de49b79039bd0cfd20684b18.png)
【数据结构】带头+双向+循环链表(DList)(增、删、查、改)详解
一、带头双向循环链表的定义和结构 1、定义 带头双向循环链表,有一个数据域和两个指针域。一个是前驱指针,指向其前一个节点;一个是后继指针,指向其后一个节点。 // 定义双向链表的节点 typedef struct ListNode {LTDataType dat…...
![](https://img-blog.csdnimg.cn/img_convert/247118a809ee2f1e8538764f8a895c97.png)
接口自动化测试平台
下载了大神的EasyTest项目demo修改了下<https://testerhome.com/topics/12648 原地址>。也有看另一位大神的HttpRunnerManager<https://github.com/HttpRunner/HttpRunnerManager 原地址>,由于水平有限,感觉有点复杂~~~ 【整整200集】超超超…...
![](https://img-blog.csdnimg.cn/20210604162357723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L214ajE0MjgyOTUwMTk=,size_16,color_FFFFFF,t_70)
【物联网】微信小程序接入阿里云物联网平台
微信小程序接入阿里云物联网平台 一 阿里云平台端 1.登录阿里云 阿里云物联网平台 点击进入公共实例,之前没有的点进去申请 2.点击产品,创建产品 3.产品名称自定义,按项目选择类型,节点类型选择之恋设备,联网方式W…...
![](https://img-blog.csdnimg.cn/img_convert/8ab7ca75af0310b424e9c55e729f76ba.jpeg)
PKG内容查看工具:Suspicious Package for Mac安装教程
Suspicious Package Mac版是一款Mac平台上的查看 PKG 程序包内信息的应用,Suspicious Package Mac版支持查看全部包内全部文件,比如需要运行的脚本,开发者,来源等等。 suspicious package mac使用简单,只需在选择pkg安…...
![](https://www.ngui.cc/images/no-images.jpg)
第16节:R语言医学分析实例:肺切除手术的Apriori关联规则分析
关联规则 肺切除手术的Apriori关联规则分析。 分析的目的是确定患有肺癌并需要接受肺切除术的患者的共病症状。 了解哪些症状是共病的可以帮助改善患者护理和药物处方。 分析类型是关联规则学习,通过探索变量之间的关联或频繁项集,尝试在大型数据集中找到见解和隐藏关系(H…...
![](https://img-blog.csdnimg.cn/img_convert/55a88b6bdf818a822ebebc045e95bb1c.png)
ChatGPT+MidJourney 3分钟生成你的动画故事
chatgpt是真的火了,chatgpt产生了一个划时代的意义——自chatgpt起,AI是真的要落地了。 chatgpt能做的事情太多了,多到最初开发模型的程序员自己,也没法说得清楚chatgpt都能做啥,似乎只要你能想得到,它都有…...
![](https://www.ngui.cc/images/no-images.jpg)
在CSDN学Golang云原生(Kubernetes Pod调度)
一,NodeSelector定向调度 在 Kubernetes 中,可以使用 NodeSelector 字段来指定 Pod 调度到哪些节点上运行。NodeSelector 是一个键值对的 map,其中键是节点的标签名,值是标签值。具体步骤如下: 在节点上添加标签 首…...
![](https://img-blog.csdnimg.cn/img_convert/6dd175462d60ffcea967538783c1cbdd.png)
Rust vs Go:常用语法对比(七)
题图来自 Go vs Rust: Which will be the top pick in programming?[1] 121. UDP listen and read Listen UDP traffic on port p and read 1024 bytes into buffer b. 听端口p上的UDP流量,并将1024字节读入缓冲区b。 import ( "fmt" "net&qu…...
![](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20230718111746.00798951652658798298550357569264:50540726080237:2800:E332ABC9F53F723FEABCFCAAB12F9D4C5E83063BE953CFC27B1C45402576BAE5.gif)
【HarmonyOS】API6使用storage实现轻量级数据存储
写在前面 本篇内容基于API6 JS语言进行开发,通过结合轻量级数据存储开发指导的文档,帮助大家完成一个实际的代码案例,通过这个小案例,可以实现简单数据的存储。 参考文档:文档中心 1、页面布局 首先我们编写一个简单…...
![](https://img-blog.csdnimg.cn/1e2e1678476a450a99eb23058dc4106a.png)
Python Flask构建微信小程序订餐系统 (十二)
🔥 创建切换商品分类状态的JS文件 🔥 ; var food_act_ops={init:function(){this.eventBind();},eventBind:function(){//表示作用域var that = this;$(".wrap_search select[name=status]").change(function(){$(".wrap_search").submit();});$(&qu…...
![](https://img-blog.csdnimg.cn/d16c6611ffa542209079834ff1daf101.png)
C++——模板的作用2:特例化
目录 模板的形式: 一.模板的多参数应用: 例: 错误使用1:使用不标准的模板形参表 编辑 错误使用2:使用变量作为实参传递给函数模板 二.模板的特例化: 类模板: 针对模板的特化步骤&am…...
![](https://img-blog.csdnimg.cn/aac2a371ceac4cb2a333ef168748c0cf.png)
Python Web开发技巧VII
目录 装饰器inject_serializer 装饰器atomic rebase git 清理add的数据 查看git的当前工作目录 makemigrations文件名称 action(detailTrue, methods["GET"]) 如何只取序列化器的一个字段进行返回 Response和JsonResponse有什么区别 序列化器填表和单字段如…...
![](https://img-blog.csdnimg.cn/img_convert/73076a343abb64820ac4f1754e4df8ed.png)
LaTex4【下载模板、引入文献】
下载latex模板:(模板官网一般都有,去找) 我这随便找了一个: 下载得到一个压缩包,然后用overleaf打开👇: (然后改里面的内容就好啦) 另外,有很多在线的数学公式编辑器&am…...
![](https://img-blog.csdnimg.cn/0733a3eda6c04ecea1d1ab20806e4d85.png)
【VSCode部署模型】导出TensorFlow2.X训练好的模型信息
参考tensorflow2.0 C加载python训练保存的pb模型 经过模型训练及保存,我们得到“OptimalModelDataSet2”文件夹,模型的保存方法(.h5或.pb文件),参考【Visual Studio Code】c/c部署tensorflow训练的模型 其中“OptimalModelDataSet2”文件夹保…...
![](https://img-blog.csdnimg.cn/e2356a298f2c42b4a4bba3acadf35fee.png)
windows环境下,安装elasticsearch
目录 前言准备安装 jdk 安装nodejsElasticSearch下载ElasticSearch-head 下载 安装ElasticSearch安装ElasticSearch-head插件设置用户名密码访问ElasticSearch 默认用户名和密码参考 前言 win10elasticsearch 8.9.0 准备 安装 jdk ElasticSearch 是基于lucence开发的&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Elasticsearch入门笔记(一)
环境搭建 Elasticsearch是搜索引擎,是常见的搜索工具之一。 Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析…...
![](https://img-blog.csdnimg.cn/330765db43934356aeac6e86e5309c9c.png)
记一次安装nvm切换node.js版本实例详解
最后效果如下: 背景:由于我以前安装过node.js,后续想安装nvm将node.js管理起来。 问题:nvm-use命令行运行成功,但是nvm-list显示并没有成功。 原因:因为安装过node.js,所以原先的node.js不收n…...
![](https://img-blog.csdnimg.cn/img_convert/0b00bfce1520f3fdb7b0fae915b42a4e.jpeg)
生态共建丨YashanDB与构力科技完成兼容互认证
近日,深圳计算科学研究院崖山数据库系统YashanDB V22.2与北京构力科技有限公司BIMBase云平台完成兼容性互认证。经严格测试,双方产品完全兼容、运行稳定。 崖山数据库系统YashanDB是深算院自主研发设计的新型数据库系统,融入原创理论…...
![](https://www.ngui.cc/images/no-images.jpg)
React从入门到实战-react脚手架,消息订阅与发布
创建项目并启动 全局安装 npm install -g create-react-app切换到想创建项目的目录,使用命令:create-react-app 项目名称 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存中…(iQ6hEUgAABpQAAAD1CAYAAABeIRZoAAAAAXNSR0IArs4c6QAAIABJREFUe…...
![](https://img-blog.csdnimg.cn/823b9e0848c54ee2b58ccd3147b53d12.png)
从零构建深度学习推理框架-1 简介和Tensor
源代码作者:https://github.com/zjhellofss 本文仅作为个人学习心得领悟 ,将原作品提炼,更加适合新手 什么是推理框架? 深度学习推理框架用于对已训练完成的神经网络进行预测,也就是说,能够将深度训练框…...
![](https://img-blog.csdnimg.cn/394570c284b143a5859322e597365b40.png)
使用WGCLOUD监测安卓(Android)设备的运行状态
WGCLOUD是一款开源运维监控软件,除了能监控各种服务器、主机、进程应用、端口、接口、docker容器、日志、数据等资源 WGCLOUD还可以监测安卓设备,比如安卓手机、安卓设备等 我们只要下载对应的安卓客户端,部署运行即可,如下是下…...
![](https://img-blog.csdnimg.cn/ffaf045f88a94b4e9ebfa935edbdc42e.png)
C++笔记之迭代器失效问题处理
C笔记之迭代器失效问题处理 code review! 参考博文:CSTL迭代器失效的几种情况总结 文章目录 C笔记之迭代器失效问题处理一.使用返回新迭代器的插入和删除操作二.对std::vector 来说,擦除(erase)元素会导致迭代器失效 一.使用返回…...
![](https://www.ngui.cc/images/no-images.jpg)
Tomcat的startup.bat文件出现闪退问题
对于双击Tomcat的startup.bat文件出现闪退问题,您提供的分析是正确的。主要原因是Tomcat需要Java Development Kit (JDK)的支持,而如果没有正确配置JAVA_HOME环境变量,Tomcat将无法找到JDK并启动,从而导致闪退。 以下是解决该问题…...
![](https://www.ngui.cc/images/no-images.jpg)
JAVA8-lambda表达式8:在设计模式-模板方法中的应用
传送门 JAVA8-lambda表达式1:什么是lambda表达式 JAVA8-lambda表达式2:常用的集合类api JAVA8-lambda表达式3:并行流,提升效率的利器? JAVA8-lambda表达式4:Optional用法 java8-lambda表达式5…...
![](https://www.ngui.cc/images/no-images.jpg)
React之组件间通信
React之组件间通信 组件通信: 简单讲就是组件之间的传值,包括state、函数等 1、父子组件通信 父组件给子组件传值 核心:1、自定义属性;2、props 父组件中: 自定义属性传值 import Header from /components/Headerconst Home ()…...
![](https://img-blog.csdnimg.cn/5805e65260744af7a2a4859c2609f6a4.png)
【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比
【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比 一、数据介绍 基于UCI葡萄酒数据集进行葡萄酒分类及产地预测 共包含178组样本数据,来源于三个葡萄酒产地,每组数据包含产地标签及13种化学元素含量,即已知类…...
CF1833 A-E
A题 题目链接:https://codeforces.com/problemset/problem/1833/A 基本思路:for循环遍历字符串s,依次截取字符串s的子串str,并保存到集合中,最后输出集合内元素的数目即可 AC代码: #include <iostrea…...
![](https://img-blog.csdnimg.cn/e5e5a43255934fe7b8964923923acc29.png)
【深度学习】【Image Inpainting】Generative Image Inpainting with Contextual Attention
Generative Image Inpainting with Contextual Attention DeepFillv1 (CVPR’2018) 论文:https://arxiv.org/abs/1801.07892 论文代码:https://github.com/JiahuiYu/generative_inpainting 论文摘录 文章目录 效果一览摘要介绍论文贡献相关工作Image…...
![](https://img-blog.csdnimg.cn/63e7e545bfc4431eac77454d85c2b19e.png)
二维深度卷积网络模型下的轴承故障诊断
1.数据集 使用凯斯西储大学轴承数据集,一共有4种负载下采集的数据,每种负载下有10种 故障状态:三种不同尺寸下的内圈故障、三种不同尺寸下的外圈故障、三种不同尺寸下的滚动体故障和一种正常状态 2.模型(二维CNN) 使…...
![](/images/no-images.jpg)
济南网站建设公司电子商务网站/seo 优化案例
虚拟列表示那列的数据不是存储在表中的,只有当虚拟列的值被查询时,该值被计算出来。 语法: column_name [datatype] [generated always] as (expression) [virtual] eg: salary as (round(salary*(1commission/100),2)) salary number gener…...
![](/images/no-images.jpg)
平面设计师证怎么考/seo北京
代码量不大,而且有参考,但是这段代码有几点需要提醒注意一下:对于指针的认识应该清楚,指针p加1指向的地址空间到底是加了1字节还是4字节,是由指针类型和平台决定的,不同类型指针的转换也要熟悉;…...
![](https://img-blog.csdnimg.cn/4a306a138fc5498fb8be80c8bf4edf92.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQnJ1Y2Ut5bWM5YWl5byP6L2v5Lu2,size_8,color_FFFFFF,t_70,g_se,x_16)
wordpress手赚推广/google官方下载
#include<iostream> #include<string> using namespace std;class Person { public://构造函数;调用对象前调用,用于初始化对象;//无参构造;默认构造Person(){cout << "无参构造函数" << endl;…...
![](http://blog.itpub.net//imgs/comment_icon1.gif)
wordpress 离线更新/人民网 疫情
网友 oneway_01 问了我一个问题,对于工作流形业务建模提出了一些疑问。这是好问题,值得讨论,特意将它发表出来。另一方面,能够做出这样的思考,说明oneway_01同学对用例方法的认知已经很深入了。恭喜一下!**…...
![](https://www.oschina.net/img/hot3.png)
WordPress顶部广告插件/武汉谷歌seo
为什么80%的码农都做不了架构师?>>> nginx的缓存机制1.基于memcached缓存机制的指令1>memcached_pass address; memcached 服务器地址 也可以使用upstream 名称配置2>memcached_connect_timeout 60s 配置连接memcached服务器的超时时间3>memc…...
政府网站建设/女教师遭网课入侵直播录屏曝光se
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前文 今天给大家介绍一款3D动画制作软件&…...