开发知识点-前端-layUI

在这里插入图片描述

layui

  • layer
  • table
    • table render

        <script type="text/html" id="buttonTpl">
          {{#  if(d.check == true){ }}
            <button class="layui-btn layui-btn-xs">已审核</button>
          {{#  } else { }}
            <button class="layui-btn layui-btn-primary layui-btn-xs">未审核</button>
          {{#  } }}
        </script>
        
        绑定模版选择器
        
         {{d.id}}、{{d.title}} 是动态内容,它对应数据接口返回的字段名。
         除此之外,你还可以读取到以下额外字段: 序号:{{ d.LAY_INDEX }} (该额外字段为 layui 2.2.0 新增)
        
 <input type="checkbox" lay-filter="switch" name="switch" lay-skin="switch" lay-text="通过|待审核">
 
 
 lay-verify="phone"
layui.config({

.extend({

 .use(['index', 'form'], function(){
 
 
  var $ = layui.$
    ,form = layui.form ;
    
    
 form.verify({})
 
 

 
 
 


 
 
 
 table.render
 
 
      table.render({
        elem: '#LAY-user-back-manage', //指向页面组件id
        height: 'full-200',
        url: '/power',
        title: '预警系统用户列表',
        page: true,//开启分页
        limit: 5,//默认每页显示条数
        limtis: [3, 5, 10],
        cols: [[
          { type: 'checkbox', fixed: 'left' }
          , { field: 'id', width: 80, sort: true, title: 'ID' }
          , { field: 'title', width: 200, title: '用户名' }
          , { field: 'pic', width: 250, title: '封面图片', templet: '#imgtmp' }
          , { field: 'content', minWidth: 400, title: '内容' }
          , { field: 'sort', width: 100, title: '分类' }
          , { fixed: 'right', width: 165, align: 'center', toolbar: '#table-useradmin-webuser' }
        ]]
      })
      
      
      table.render({
      elem: '#userData' // html 中 table 标签的 id
      , url: '/user/userlist' //数据接口
      , title: '已用优惠券'
      , cols: [[
        { field: 'tkt_name', title: '已用优惠券', width: 300, height: 200, align: 'center' }
      ]]
      , id:"tickedRolad" // 当前 table 变量数据表的 id
      , response: { // 响应的数据的格式
        statusName: 'code' //规定数据状态的字段名称,默认:code
        , statusCode: 0 //规定成功的状态码,默认:0
        , msgName: 'hint' //规定状态信息的字段名称,默认:msg
        , countName: 'total' //规定数据总数的字段名称,默认:count
        , dataName: 'maps1' //规定数据列表的字段名称,默认:data
      }
      , parseData: function (res) {
        // 解析数据
        console.log(res)
      }
      , skin: 'line'
    });


 layui.form事件监听

语法:form.on('event(过滤器值)', callback);

form模块在 layui 事件机制中注册了专属事件,所以当你使用layui.onevent()自定义模块事件时,请勿占用form名。form支持的事件如下:

event	描述
select	监听select下拉选择事件
checkbox	监听checkbox复选框勾选事件
switch	监听checkbox复选框开关事件
radio	监听radio单选框事件
submit	监听表单提交事件
 
 基本用法细节如下:

按钮点击或者表单被执行提交时触发,其中回调函数只有在验证全部通过后才会进入,回调返回三个成员:

form.on('submit(*)', function(data){
  console.log(data.elem) //被执行事件的元素DOM对象,一般为button对象
  console.log(data.form) //被执行提交的form对象,一般在存在form标签时才会返回
  console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value}
  return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
再次温馨提示:上述的submit(*)中的 * 号为事件过滤器的值,是在你绑定执行提交的元素时设定的,如:

<button lay-submit lay-filter="*">提交</button>     
你可以把*号换成任意的值,如:lay-filter="go",但监听事件时也要改成 form.on('submit(go)', callback);
iframe表单

layer.open({
    id: 'LAY_layuipro', //设定一个id,防止重复弹出
    type: 2,
    title:'添加人员信息',
    area: ['600px','340px'],
    btn: ['保存','关闭'],
    yes: function(index, layero){
     var inputForm = $(window.frames["layui-layer-iframe" + index].document).contents().find("#userForm");
     inputForm.ajaxSubmit({
      url:'<%=path%>/version/demand/saveDemand',
      type:'post',
      dataType:'json',
      success:function(result){
       if(result.data=='ok'){
        layer.closeAll();
        layer.alert("添加成功!")
        reloadData();//重新加载列表
       }
      }
     });
    },btn2: function(){
     layer.closeAll();
    },content: '<%=path%>/user/toAdd'
   })
   
   
 
    , btn: ['确定', '取消']
            , yes: function (index, layero) {
              var iframeWindow = window['layui-layer-iframe' + index]
                , submitID = 'LAY-user-back-submit'
                , submit = layero.find('iframe').contents().find('#' + submitID);
            

              iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
                var field = data.field; //获取提交的字段
                console.lgo(field)
                
                
  https://blog.csdn.net/qq_27878777/article/details/122085781
  
  
  
  
{
  "code": 0
  ,"msg": ""
  ,"count": "100"
  ,"data": [{
    "id": "1001"
    ,"loginname": "admin"
    ,"telphone": "11111111111"
    ,"email": "111@qq.com"
    ,"role": "超级管理员"
    ,"jointime": "20150217"
    ,"check": true
  },{
    "id": "1002"
    ,"loginname": "common-1"
    ,"telphone": "22222222222"
    ,"email": "222@qq.com"
    ,"role": "管理员"
    ,"jointime": "20160217"
    ,"check": false
  },{
    "id": "1003"
    ,"loginname": "common-2"
    ,"telphone": "33333333333"
    ,"email": "333@qq.com"
    ,"role": "管理员"
    ,"jointime": "20161012"
    ,"check": false
  },{
    "id": "1004"
    ,"loginname": "common-3"
    ,"telphone": "44444444444"
    ,"email": "444@qq.com"
    ,"role": "管理员"
    ,"jointime": "20170518"
    ,"check": true
  },{
    "id": "1005"
    ,"loginname": "common-4"
    ,"telphone": "55555555555"
    ,"email": "555@qq.com"
    ,"role": "管理员"
    ,"jointime": "20180101"
    ,"check": false
  },{
    "id": "1006"
    ,"loginname": "common-5"
    ,"telphone": "66666666666"
    ,"email": "666@qq.com"
    ,"role": "管理员"
    ,"jointime": "20160217"
    ,"check": false
  },{
    "id": "1007"
    ,"loginname": "common-6"
    ,"telphone": "77777777777"
    ,"email": "777@qq.com"
    ,"role": "管理员"
    ,"jointime": "20161012"
    ,"check": false
  },{
    "id": "1008"
    ,"loginname": "common-7"
    ,"telphone": "88888888888"
    ,"email": "888@qq.com"
    ,"role": "管理员"
    ,"jointime": "20170518"
    ,"check": true
  },{
    "id": "1009"
    ,"loginname": "common-8"
    ,"telphone": "99999999999"
    ,"email": "999@qq.com"
    ,"role": "管理员"
    ,"jointime": "20180101"
    ,"check": false
  }]
}

layui中layer弹出层点击事件无效

1、click只能为页面现有的元素绑定点击事件,如果是动态生成的新的元素,是没有事 件的

2、而(document).on(“click”,”指定的元素”,function());

方法则是将指定的事件绑定在document上,而新产生的元素如果符合指定的元素,那就触发此事件不起作用:(document).on(“click”,”指定的元素”,function());

方法则是将指定的事件绑定在document上,而新产生的元素如果符合指定的元素,那就触发此事件不起作用:

(‘#test').on(‘click', function() {
layer.msg(‘响应点击事件');
});

起作用了:

$(document).on(‘click', ‘#test', function() {
layer.msg(‘响应点击事件');
});
layui是一个遵循原生态开发模式的Web UI组件库,
它提供了一些常用的界面元素和交互效果。
其中一个组件是layer,它可以实现弹出层、提示框、加载层等功能。以下是一些使用layer组件的示例代码:

弹出一个简单的信息框:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layer示例</title>
  <!-- 引入layui.css -->
  <link rel="stylesheet" href="https://www.layuicdn.com/layui/css/layui.css">
</head>
<body>

<!-- 引入jquery.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入layui.js -->
<script src="https://www.layuicdn.com/layui/layui.js"></script>

<script>
// 使用layui模块
layui.use('layer', function(){
  // 获取layer对象
  var layer = layui.layer;
  
  // 调用layer.msg方法,弹出一个信息框
  layer.msg('Hello World');
}); 
</script>

</body>
</html>
弹出一个带有标题和按钮的询问框:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layer示例</title>
  <!-- 引入layui.css -->
  <link rel="stylesheet" href="https://www.layuicdn.com/layui/css/layui.css">
</head>
<body>

<!-- 引入jquery.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入layui.js -->
<script src="https://www.layuicdn.com/layui/layui.js"></script>

<script>
// 使用layui模块
layui.use('layer', function(){
  // 获取layer对象
  var layer = layui.layer;
  
  // 调用layer.confirm方法,弹出一个询问框
  layer.confirm('您确定要删除吗?', {
    title: '提示', // 标题
    btn: ['确定','取消'] // 按钮
    }, function(index){
      // 点击确定按钮的回调函数
      layer.close(index); // 关闭当前层
      layer.msg('删除成功'); // 显示删除成功信息
    }, function(index){
      // 点击取消按钮的回调函数
      layer.close(index); // 关闭当前层
    });
}); 
</script>

</body>
</html>
显示一个加载中的动画:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layer示例</title>
  <!-- 引入layui.css -->
  <link rel="stylesheet" href="https://www.layuicdn.com/layui/css/layui.css">
</head>
<body>

<!-- 引入jquery.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入layui.js -->
<script src="https://www.layuicdn.com/layui/layui.js"></script>

<script>
// 使用layui模块
layui.use('layer', function(){
  // 获取layer对象
  var layer = layui.layer;
  
  // 调用layer.load方法,显示加载中动画,默认为风格0(转圈)
   var index = layer.load(); 
  
   setTimeout(function(){
     layer.close(index); // 关闭加载层,需要传入索引值index作为参数 
   },3000); // 设置3秒后关闭加载层
  
}); 
</script>

</body>
</html> 
















layui提供了一个jquery的扩展方法,叫做layui.data。这个方法可以用来发送ajax请求,并且在请求过程中显示一个加载中的动画。以下是一个使用layui.data方法的示例代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layui示例</title>
  <!-- 引入layui.css -->
  <link rel="stylesheet" href="https://www.layuicdn.com/layui/css/layui.css">
</head>
<body>

<!-- 定义一个显示数据的容器 -->
<div id="data-container"></div>

<!-- 引入jquery.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入layui.js -->
<script src="https://www.layuicdn.com/layui/layui.js"></script>

<script>
// 使用layui模块
layui.use(['layer', 'jquery'], function(){
  // 获取layer和jquery对象
  var layer = layui.layer;
  var $ = layui.jquery;
  
  // 调用layui.data方法,发送ajax请求
  layui.data('test', {
    url: 'https://jsonplaceholder.typicode.com/posts', // 请求的地址
    type: 'get', // 请求的类型,默认为get
    data: {}, // 请求的参数,可以为空
    success: function(res){ // 请求成功的回调函数
      // 关闭加载层
      layer.closeAll('loading');
      // 把返回的数据显示到容器中
      $('#data-container').html(JSON.stringify(res));
    },
    error: function(err){ // 请求失败的回调函数
      // 关闭加载层
      layer.closeAll('loading');
      // 显示错误信息
      layer.msg('请求失败');
    }
  });
  
}); 
</script>

</body>
</html> 









layer.confirm是一个弹出一个带有标题和按钮的询问框的方法,它可以接受一个回调函数作为参数,在用户点击确定或取消按钮时执行。如果想要在回调函数中发送ajax请求,并且在请求过程中显示一个加载中的动画,可以使用layer.load方法来打开一个加载层,并在请求成功或失败后使用layer.closeAll或layer.close方法来关闭加载层。以下是一个使用layer.confirm和layer.load方法的示例代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layer示例</title>
  <!-- 引入layui.css -->
  <link rel="stylesheet" href="https://www.layuicdn.com/layui/css/layui.css">
</head>
<body>

<!-- 引入jquery.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入layui.js -->
<script src="https://www.layuicdn.com/layui/layui.js"></script>

<script>
// 使用layui模块
layui.use(['layer', 'jquery'], function(){
  // 获取layer和jquery对象
  var layer = layui.layer;
  var $ = layui.jquery;
  
  // 调用layer.confirm方法,弹出一个询问框
  layer.confirm('您确定要删除吗?', {
    title: '提示', // 标题
    btn: ['确定','取消'] // 按钮
    }, function(index){
      // 点击确定按钮的回调函数
      
      // 关闭当前层,需要传入索引值index作为参数
      layer.close(index); 
      
      // 调用layer.load方法,打开一个加载层,默认为风格0(转圈)
      var loadIndex = layer.load(); 
      
      // 发送ajax请求
      $.ajax({
        url: '/././', // 请求的地址
        type: 'POST', // 请求的类型,默认为get
        data: {}, // 请求的参数,可以为空
        success: function (res) { 
          // 请求成功的回调函数
            
          // 关闭加载层,需要传入索引值loadIndex作为参数 
          layer.close(loadIndex); 
            
          // 显示成功信息
          layer.msg('删除成功'); 
          
        },
        error: function(res){ 
          // 请求失败的回调函数
            
          // 关闭所有弹层,不需要传入参数 
          layer.closeAll(); 
            
          // 显示错误信息
          layer.alert('请求失败');
        }
      });
      
    }, function(index){
      // 点击取消按钮的回调函数
      
      // 关闭当前层,需要传入索引值index作为参数
      layer.close(index); 
      
    });
}); 
</script>

</body>
</html> 

layer

layero.find


layer是一款近年来备受青睐的 web 弹层组件




var iframeWindow = window['layui-layer-iframe' + index]
                , submitID = 'LAY-user-back-submit'
                , submit = layero.find('iframe').contents().find('#' + submitID); 

              console.log(iframeWindow.layui.form)
              iframeWindow.layui.form

 


layer.confirm

function saveBack(museId) {
    var str = "<div><h4>会费返还</h4><p>金额:<input type='text' id='price' /></p></div>";
    layer.confirm(str, {btn: ['确定', '取消'], title: "提示"}, function () {
        var price = $("#price").val();
        if (price == null || price == undefined) {
            layer.msg('请输入金额', {icon: 2});
        }
        var url = "${ctx }/manage/member/Back.do?museId=" + museId + "&price=" + price;
        $.ajax({
            type: "post",
            url: url,
            data: null,
            dataType: "json",
            async: false,
            success: function (data) {
                if (data.flag == 1) {
                    layer.msg('操作成功', {icon: 1});
                    window.setTimeout("javascript:location.href='${ctx }/manage/member/toPage.do'", 2000);
                } else {
                    layer.msg(data.msg, {icon: 2});
                }
            }
        });
    });
}


方法一:
直接在function里面加入layer.closeAll(‘dialog’);

layer.confirm("请问是否确定删除,删除后不可恢复?", {
            btn: ["确定","取消"] //按钮
        }, function(){
            alert(123);
            layer.closeAll('dialog');
        }, function(){

        });
方法二:
修改function()function(index),这种方式,官方是支持的。具体可以看官方文档demo的写法

layer.confirm("请问是否确定删除,删除后不可恢复?", {
            btn: ["确定","取消"] //按钮
        }, function(index){
            alert(123);
            layer.close(index);
        }, function(){

        });
引入layer的js文件和css文件,或者使用layui.use()方法来加载layer模块。例如1<script src="layer.js"></script>
<link rel="stylesheet" href="layer.css">
layui.use('layer', function(){
  var layer = layui.layer;
});
使用layer.open()方法来创建一个弹出层,可以设置不同的参数来控制弹出层的类型、标题、内容、样式、位置、按钮等。例如12:
layer.open({
  type: 1, // 弹出层的类型,1表示页面层
  title: '标题', // 弹出层的标题
  content: '内容', // 弹出层的内容,可以是html或dom对象
  area: ['300px', '200px'], // 弹出层的宽高
  offset: '100px', // 弹出层距离顶部的距离
  btn: ['确定', '取消'], // 弹出层的按钮
  yes: function(index, layero){
    // 点击确定按钮的回调函数
    layer.close(index); // 关闭弹出层
  },
  cancel: function(index, layero){
    // 点击取消按钮或右上角关闭按钮的回调函数
    layer.close(index); // 关闭弹出层
  }
});
使用layer.msg()方法来快捷创建一个提示信息框,可以设置提示内容、图标、时间等。例如13:
layer.msg('操作成功', {icon: 1, time: 2000}); // 显示一个带有对号图标和2秒自动关闭的提示信息框



// 引入layui的table和layer模块
layui.use(['table','layer'],function () {
  var table = layui.table // 获取table模块对象
  var layer = layui.layer // 获取layer模块对象

table

好的,我会尽力回答你的问题。😊

根据搜索结果,你可以使用layui的table模块来创建带有选项的表格,例如复选框、单选框、工具条等。你需要在表头的cols参数中设置type和toolbar属性来指定选项的类型和模板。例如:

table.render({
  elem: '#demo',
  height: 312,
  url: '/static/json/table/user.json', //数据接口
  page: true, //开启分页
  cols: [[ //表头
    {type: 'checkbox', fixed: 'left'}, //复选框
    {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'},
    {field: 'username', title: '用户名', width:80},
    {field: 'sex', title: '性别', width:80, sort: true},
    {field: 'city', title: '城市', width:80},
      
 
      
      
  <!-- 定义一个表格元素 -->
<table id="demo" lay-filter="test"></table>

<!-- 定义一个按钮模板 -->
<script type="text/html" id="btn">
  <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
  <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

<!-- 引入layui.js -->
<script src="layui/layui.js"></script>

<!-- 使用layui的table模块渲染表格 -->
<script>
  layui.use(['layer','table'],function () {
    var layer = layui.layer
    var table = layui.table

    // 渲染表格
    table.render({
      elem:"#demo", // 表格元素的id
      url:"此处填写访问网址加协议", // 数据接口的url
      page:true, // 开启分页
      cols:[[ // 表头
        {field: 'title', title: '标题', width:200, fixed: 'left'} ,
        {field: 'ctime', title: '时间', width:150} ,
        {field: 'description', title: '发布公司', width:150} ,
        {field: 'button', title: '操作', width:200, toolbar:"#btn"} // 使用按钮模板
      ]],
      parseData:function (res) { // 解析数据格式
        return {
          "code":0, // 状态码,必须为0
          "msg":res.msg, // 状态信息
          "count":1000, // 数据总数
          "data":res.newslist // 数据列表
        }
      }
    })
  })
</script>
 
  // 监听按钮点击事件
  table.on('tool (test)', function(obj){
    var data = obj.data; // 获取当前行的数据对象
    var layEvent = obj.event; // 获取当前点击的按钮事件名
    if(layEvent === 'detail'){ // 如果是查看按钮
      console.log(data); // 打印当前行的数据对象
      layer.msg('查看操作'); // 弹出提示信息
    } else if(layEvent === 'edit'){ // 如果是编辑按钮
      console.log(data); // 打印当前行的数据对象
      layer.msg('编辑操作'); // 弹出提示信息
    } else if(layEvent === 'del'){ // 如果是删除按钮
      console.log(data); // 打印当前行的数据对象
      layer.msg('删除操作'); // 弹出提示信息
    }
  });


第一个参数是一个字符串,表示事件名和过滤器名,用括号分隔。事件名是固定的,为’tool’,表示工具条事件。过滤器名是自定义的,要和表格元素的lay-filter属性一致,用于区分不同的表格实例。在这个例子中,过滤器名是’test’,表示监听id为’demo’的表格元素的工具条事件。

第二个参数是一个函数,表示事件处理函数。它的参数是一个对象,包含了一些事件相关的属性和方法。比如:

obj.data:表示当前行的数据对象,可以通过它获取单元格的值。
obj.event:表示当前点击的按钮事件名,可以通过它判断是哪个按钮被点击。
obj.tr:表示当前行的DOM对象,可以通过它操作DOM元素。
obj.del():表示删除当前行的方法,可以通过它实现删除功能。
obj.update():表示更新当前行的方法,可以通过它实现更新功能。





// 在table.render方法中,为标题列设置templet属性,值为一个函数
table.render({
  cols: [[
    {field:'title', title: '标题', width:200, templet: function(d){
      // 使用a标签包裹标题,并设置href属性为任务详情页的链接,使用d.task_id, d.targetName, d.site_cnt作为参数
      // 使用+号连接字符串和变量
      return '<a href="https://127.0.0.1:5003/taskList/taskDetail?task_id='+ d.task_id +'&targetName='+ d.targetName +'&site_cnt='+ d.site_cnt +'" target="_blank">'+ d.title +'</a>';
      // 或者使用模板字符串和插值表达式
      // return `<a href="https://127.0.0.1:5003/taskList/taskDetail?task_id=${d.task_id}&targetName=${d.targetName}&site_cnt=${d.site_cnt}" target="_blank">${d.title}</a>`;
    }}
  ]]
});




table.render({
  elem: '#demo',
  height: 312,
  url: '/demo/table/user/',
  page: true,
  cols: [[
    {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'},
    {field: 'name', title: '任务名', width:200, templet: function(d){
      //获取URL的参数
      var url = new URL('https://120.48.83.89:5003/api/site/?page=1&size=10&task_id=642e35eea59cc5e1dd0db908&targetName=www.recheng.fun&site_cnt=4&domain_cnt=1&ip_cnt=1&cert_cnt=0&service_cnt=0&fileleak_cnt=0&url_cnt=0&vuln_cnt=0&npoc_service_cnt=0&cip_cnt=1&nuclei_result_cnt=0&stat_finger_cnt=1');
      var params = url.searchParams;
      //判断表格的某一行是否存在这个值
      if (d._id == params.get('task_id') && d.target == params.get('targetName')){
        //拼接一个超链接
        return `<a href="/api/site/?page=1&size=10&task_id=${d._id}&targetName=${d.target}" target="_blank">${d.name}</a>`;
      } else {
        //返回原始值
        return d.name;
      }
    }}
    //其他列省略
  ]]
});

table render

在layui中,table.render()方法需要返回一个JSON格式的数据,其中必须包含code和data两个字段。其中code字段表示状态码,data字段表示数据。如果返回的数据格式不符合要求,就会出现这个错误。

你可以检查一下你的后台代码,看看是否正确地返回了code和data两个字段。如果没有,你需要修改后台代码以正确地返回这两个字段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/429190.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker镜像导出/导入

Docker镜像导出/导入 一、前言 在实际操作中&#xff0c;为了便于docker镜像环境和服务配置的迁移&#xff0c;我们有时需要将已在测试环境主机上完成一系列配置的docker镜像或运行中的容器镜像导出&#xff0c;并传输到生产或其他目标环境主机上运行。为此&#xff0c;本文主…

Python-sklearn-LinearRegression

目录 1 手动实现/使用sklearn实现线性回归训练 1.1 单特征线性回归&#xff08;One Feature&#xff09; 1.2 多特征线性回归&#xff08;Multiple Features&#xff09; 1.3 多项式线性回归&#xff08;Polynomial&#xff09; 1 手动实现/使用sklearn实现线性回归训练 1…

flutter之终极报错

看到这个报错头都大了 一开始在网上各种搜搜&#xff0c;然后有人说是flutter版本的问题&#xff0c;改完版本之后还是不对&#xff0c;又是各种搜搜搜 有人说是环境变量的问题&#xff0c;后来改了环境变量&#xff0c;妈的&#xff0c;竟然还不行&#xff0c;想砸电脑的心都…

深入浅出RPC原理

远程过程调用(Remote Procedure Call&#xff0c;简称RPC)&#xff0c;在微服务大行其道的今天&#xff0c;得到了广泛的应用。因此&#xff0c;在分布式系统服务群中开发应用&#xff0c;了解RPC一些原理和实现架构&#xff0c;还是很有必要的。本文&#xff0c;将从大的框架层…

js字符串转json的3种方法

1.eval方式解析 function strToJson(str){var json eval("(" str ")");return json;}console.log(strToJson("{int:1, string:demo}")); 运行截图&#xff1a; 注&#xff1a; 记得别忘了str两旁的小括号。 永远不要使用 eval !!! eval() 是一…

华容道问题求解第一部分_详细设计(一)之棋子和游戏类_初始化部分

按&#xff1a;因为自控力和能力的原因&#xff0c;这个其实是在和代码同时进行的。 主要 类 说明 这一层是整个项目的基础&#xff0c;将对未来的算法的效率产生重要影响。为了和界面隔离&#xff0c;以及自身逻辑的清晰&#xff0c;下面的两个类是必须的&#xff0c;棋子类…

42、网络编程/多点通信和域套接字通信模型20240304

一、多点通信之广播的收发端实现 1.广播发送端代码&#xff1a; #include<myhead.h>int main(int argc, const char *argv[]) {int sfdsocket(AF_INET,SOCK_DGRAM,0);//创建套接字if(sfd-1){perror("socket,error");return -1;}int broadcast1;//设置套接字广…

[计算机网络]:流量控制

一、流量控制简介 一条TCP连接的每一侧主机都为其设置了接收缓存&#xff0c;当TCP成功连接后&#xff0c;它发送的数据会放入接受缓存中。相关联的进程会从缓存中读取数据。但是存在一个问题&#xff0c;当某应用程序读取数据速率太慢&#xff0c;而发送数据一方不停的发送数…

计算机网络 网络原理之Http

目录 1 前言2 什么是http的一次交互&#xff1f;3 理解“协议”二字4 认识URL4.1 简介4.2 URL的编码和解码(urlencode和urldecode) 5 抓包工具 fiddler6 http和https的区别7 http 头8 HTTP 状态码9 常见的 Http 服务器 1 前言 为什么要了解Http原理呢&#xff1f;因为http原理…

Vue.js中的diff算法:让虚拟DOM更高效

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

计算机设计大赛 深度学习疲劳驾驶检测 opencv python

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…

排序算法:插入排序

文章目录 插入排序 插入排序 什么叫插入排序&#xff1f; 也就是把数字从前&#xff0c;或者从最后开始比较然后插入到这个数的前面或者后面&#xff0c;从[0,end]区间插入 void InsertSort(int* a,int n) {for (int i 1; i < n; i){int end i-1;int tmp a[i];while (end…

华为配置基于VLAN限速示例

华为配置基于VLAN限速示例 组网图形 图1 流量监管配置组网图 表1 Switch为上行流量提供的QoS保障 流量类型 CIR(kbps) PIR(kbps) DSCP优先级 语音 2000 10000 46 视频 4000 10000 30 数据 4000 10000 14 ^^^ 流分类简介配置注意事项组网需求配置思路操作步…

实名制交友-智能匹配-仿二狗交友系统-TP6+uni-APP小程序H5公众号-源码交付-支持二开!

一、代码风格 通常不同的开发者具备不同的代码风格&#xff0c;但为了保证语音交友系统开发质量&#xff0c;在编码前需要进行代码风格的统一&#xff0c;通过制定一定的规则&#xff0c;约束开发者的行为。具有统一风格的代码才能更清晰、更完整、更容易理解、更方便后期维护…

【CSS】(浮动定位)易忘知识点汇总

浮动特性 加了浮动之后的元素,会具有很多特性,需要我们掌握的. 1、浮动元素会脱离标准流(脱标&#xff1a;浮动的盒子不再保留原先的位置) 2、浮动的元素会一行内显示并且元素顶部对齐 注意&#xff1a; 浮动的元素是互相贴靠在一起的&#xff08;不会有缝隙&#xff09;&…

基于机器学习的密码强度检测

项目简介 利用机器学习对提供的数据集预测用户输入的密码是否为弱密码。 原始数据集只包含关于弱密码的信息&#xff0c;并没有包含强密码的数据或分类器&#xff0c;这意味着模型无法学习到强密码的规律!!! 我之所以这样设计这个示例&#xff0c;其目的是为了向你展示模型的…

python统计分析——单变量数据统计作图

参考资料&#xff1a;python统计分析-托马斯 1、导入库和数据准备 # 导入库 # 用于数值处理的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 import matplotlib.pyplot as plt import seaborn as sns sns.set()# 数…

安全特性 悬垂指针

英文名称 Dangling point&#xff0c;它还有一个兄弟叫 wild point - 野指针。 简单的对Dangling point做一个类比&#xff1a;我换手机号码了&#xff0c;但是没有通知老板&#xff0c;老板通讯录存的是我的旧号码。然后老板打电话有两种可能&#xff1a;打不通电话或者电话打…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(十五)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

优化算法之最速梯度下降法、牛顿法、拟牛顿法(DFP及BFGS)

优化算法之最速梯度下降法、牛顿法、拟牛顿法 一、最速梯度下降法 我们知道常规的梯度下降法迭代法公式如下&#xff1a; θ ( k 1 ) θ ( k ) − η ∇ f ( θ ( k ) ) \theta^{(k1)} \theta^{(k)} - \eta\nabla f(\theta^{(k)}) θ(k1)θ(k)−η∇f(θ(k)) 迭代公式中包…