2023.12.6-12.11 黑马知行教育项目实战,访问咨询意向线索主题

news2024/11/24 2:22:48

目录

简单介绍:

一.项目背景介绍

二.项目架构介绍

三.项目内容

 3.1访问和咨询分析主题:

3.1.1 表与表之间的关联

 3.1.2访问咨询主题需求汇总:最终需在ADS层制作六张表

 3.1.3 访问咨询DWS大宽表建表与导入数据

 3.2意向线索主题需求分析

 3.2.1意向线索主题需求汇总:最终需在ADS层制作8张表

 3.2.2 .表与表之间的关联

3.2.3 意向线索主题DWS大宽表建表与数据导入


简单介绍:

(本项目数据来源,环境搭建都可以从黑马程序员b站视频"在线教育数仓实战"中免费获取)

整个项目的目的,就是将大量原始杂乱的数据,合并到一张大表中,再从大表中抽取需求里要用的数据,成为多个ADS表,最后将ADS数据使用可视化工具进行展示.


一.项目背景介绍

在线教育公司的主要产品是课程,为了提高公司的课程销量、提升公司的口碑、帮助公司做更好的运营推广,该公司对公司的访问与咨询系统、客户服务系统、教学管理系统的数据进行了数据分析。通过分析用户的访问量、咨询量、意向量、报名量等指标计算用户从访问到报名阶段的报名率,反映公司的运营情况,支持运营决策。通过分析学员的出勤人数、迟到人数、请假人数等指标计算学员学习课程时的出勤率、迟到率等指标来监控学员的学习情况,进而实现学员的学习管理,保证学员的学习质量,提升公司口碑。

但早期公司完成各项数据统计工作主要是基于web业务系统实现的, 通过SQL直接在业务数据库RDBMS中实施统计分析操作的。随着时间推移, 公司中数据量会越来越多, 此时原有的传统的数据库无法支撑庞大数据的存储, 需要解决数据存储的问题, 同时当数据量变大后, 原有的分析效率下降,不能及时的构建统计分析的结果,也造成大量的资源占用, 从而导致正常的数据支撑业务无法使用。

为了解决上述问题,提高公司的课程销量、提升公司的口碑、帮助公司做更好的运营推广,本项目通过对公司的访问与咨询系统、客户服务系统、教学管理系统三个系统四个主题的数据进行数据分析。

主要分析内容如下: 分析线上用户的各时间段各地区访问量、总咨询量以及咨询率等访问与咨询系统指标,分析线上线下新老学员各时间段各地区各学科的意向量、报名量等客户服务系统指标,计算用户从访问、产生意向线索到报名阶段的咨询率,有效线索转化率和有效线索报名转换率,反映公司的运营情况,了解市场需求,支持运营决策支持运营决策。


二.项目架构介绍

CDH ( Cloudera Distribution Hadoop )是 Cloudera 公司提供的包含 Apache Hadoop 及其相关项目的软件发行版本。CDH ( Cloudera Distribution Hadoop )是 Cloudera 公司提供的包含 Apache Hadoop 及其相关项目的软件发行版本。

Cloudera manager : CM是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

HDFS :hadoop的组件之一, 分布式文件存储系统,一次写入多次读取,不支持追加修改,具有高容错性,实时性,面向大数据集.

YARN: hadoop的组件之一,分布式资源调度,支持多个数据处理框架(MapReduce Spark Storm等)。具有资源利用率高、运行成本底、数据共享等特点

HIVE:基于hadoop的数据仓库处理工具,将SQL语句转化成MapReduce程序,进行分布式SQL计算

Zookeeper :分布式协调服务, 分布式的小文件存储系统,用来解决分布式集群中应用系统的一致性问题.

DATAx : 阿里巴巴开源的一个异构数据源离线同步工具,本项目使用它将mysql的数据与hive的数据互相传导同步,在这个过程中字段需要能对得上

三.项目内容

  • 项目行业: 项目所处行业 , 背景(访问与咨询系统、客户服务系统、教学管理系统) ,遇到的问题已经对应的需求:

  • ==项目业务:== 访问与咨询流程, 意向和与线索流程,报名流程,考勤流程

  • ==项目需求==: 访问与咨询主题, 意向和与线索主题,报名主题,考勤主题

  • 基于之前的数据分析业务,构建大数据数据仓库平台,将原有的业务基于大数据数据仓库平台来实现

3.0整体业务流程

 3.1访问和咨询分析主题:

客户访问和咨询主题,顾名思义,分析的数据主要是客户的访问数据和咨询数据。但是经过需求调研,这里的访问数据,实际指的是访问的客户量,而不是客户访问量。原始数据来源于咨询系统的mysql业务数据库。

表名维度指标
总访问客户量

年、季度、月 、日、小时

访问客户量

地区独立访客热力图

年,季度,月        访问量(按地区聚合)
访客咨询率趋势年,月,城市

咨询率=发起咨询的人数/访问客户量区分咨询人数:msg_count 必须 >= 1
客户访问量和访客咨询率双轴趋势年,季度,月,天,小时访问量,咨询人数区分咨询人数:msg_count 必须 >= 1
时间段访问客户量趋势天,小时访问量
来源渠道访问量占比年,季度,月,天,小时各个渠道字段:origin_channel
时间维度:create_time
指标:sid

访问量和咨询量的划分:
msg_count >= 1

搜索来源访问量占比年 季度 月 天 小时搜索来源:seo_source
时间维度:create_time
指标字段:sid
活跃页面排行榜 年 季度 月 天 小时各个页面:from_url
指标字段:count(1)

3.1.1 表与表之间的关联

 3.1.2访问咨询主题需求汇总:最终需在ADS层制作六张表

ads_area_total_we_chat_2019_7_day,                                地区总访问量天表
ads_channel_total_web_chat_ems_2019_07_day,        来源渠道总访问量客户天表
ads_china_area_consultation_rate_day,                        地区咨询率比率天表
ads_from_url_total_web_chat_2019_07_day,                url来源页面总访问客户量天表
ads_source_total_web_chat_ems_2019_07_day,        搜索来源总访问客户量天表
ads_total_we_chat_2019_7_hour,                                        总访问客户量小时表

每小时/每天/每月/每个季度/每年总访问用户量、总访问IP个数、总访问Session个数

每天/每月/每个季度/每年全国各个地区访问用户量、访问IP个数、访问Session个数

每天/每月/每个季度/每年每个来源渠道的访问用户量、访问IP个数、访问Session个数

每天/每月/每个季度/每年每个搜索来源的访问用户量、访问IP个数、访问Session个数

每天/每月/每个季度/每年每个来源页面的访问用户量、访问IP个数、访问Session个数

每天/每月/每个季度/每年全国各个地区咨询率:咨询率 = 咨询人数 / 访问人数

 3.1.3 访问咨询DWS大宽表建表与导入数据

分层得到了大宽表后,之后的需求就可以直接from这个大宽表,提升了效率,事实上本主题也只有2个表而已,轻轻松松

-- 创建DWS层
create database  if not exists
    zxjy_dws;
use zxjy_dws;

-- 创建访问与咨询信息表
drop table if exists zxjy_dws.dws_we_chat_2019_07;
create table zxjy_dws.dws_we_chat_2019_07(
  id                             BIGINT          COMMENT '主键',
  create_date_time               timestamp       COMMENT '数据创建时间',
  session_id                     string          COMMENT '七陌sessionId',
  sid                            string          COMMENT '访客id',
  create_time                    timestamp       COMMENT '会话创建时间',
  seo_source                     string          COMMENT '搜索来源',
  seo_keywords                   string          COMMENT '关键字',
  ip                             string          COMMENT 'IP地址',
  area                           string          COMMENT '地域',
  country                        string          COMMENT '所在国家',
  province                       string          COMMENT '省',
  city                           string          COMMENT '城市',
  origin_channel                 string          COMMENT '投放渠道',
  `user`                         string          COMMENT '所属坐席',
  manual_time                    timestamp       COMMENT '人工开始时间',
  begin_time                     timestamp       COMMENT '坐席领取时间 ',
  end_time                       timestamp       COMMENT '会话结束时间',
  last_customer_msg_time_stamp   timestamp       COMMENT '客户最后一条消息的时间',
  last_agent_msg_time_stamp      timestamp       COMMENT '坐席最后一下回复的时间',
  reply_msg_count                BIGINT          COMMENT '客服回复消息数',
  msg_count                      BIGINT          COMMENT '客户发送消息数',
  browser_name                   string          COMMENT '浏览器名称',
  os_info                        string          COMMENT '系统名称',
  referrer                  string  comment '上级来源页面',
  from_url                  string  comment '会话来源页面',
  landing_page_url          string  comment '访客着陆页面',
  url_title                 string  comment '咨询页面title',
  platform_description      string  comment '客户平台信息',
  other_params              string  comment '扩展字段中数据',
  history                   string  comment '历史访问记录'
)comment '访问与咨询信息表'
partitioned by (dt STRING COMMENT '录入日期')
row format delimited fields terminated by ','
stored as orc
tblproperties ('orc.compress' = 'SNAPPY');

--  访问与咨询信息表插入数据
-- 主表与附属表left join
insert overwrite table zxjy_dws.dws_we_chat_2019_07 partition(dt)
select
    t1.id,
    t1.create_date_time,
    t1.session_id,
    t1.sid,
    t1.create_time,
    t1.seo_source,
    t1.seo_keywords,
    t1.ip,
    t1.area,
    t1.country,
    t1.province,
    t1.city,
    t1.origin_channel,
    t1.`user`,
    t1.manual_time,
    t1.begin_time,
    t1.end_time,
    t1.last_customer_msg_time_stamp,
    t1.last_agent_msg_time_stamp,
    t1.reply_msg_count,
    t1.msg_count,
    t1.browser_name,
    t1.os_info,
    t2.referrer,
    t2.from_url,
    t2.landing_page_url,
    t2.url_title,
    t2.platform_description,
    t2.other_params,
    t2.history,
    date_format(t1.create_time, 'yyyy-MM-dd') as dt
from zxjy_ods.ods_web_chat_ems_2019_07_i t1
    left join zxjy_ods.ods_web_chat_string_ems_2019_07_i t2 on t1.id =t2.id;

 3.2意向线索主题需求分析

 3.2.1意向线索主题需求汇总:最终需在ADS层制作8张表

ads_relationshaip_channel_customer,                来源渠道意向用户数天表
ads_relationshaip_department_customer,        咨询中心意向用户数天表
ads_relationshaip_school_customer,                学校意向用户数天表
ads_relationshaip_subject_customer,                学科意向用户数天表
ads_relationshaip_vaild_customer,                        有效线索数天表
ads_relationshaip_valid_percent_customer,        有效线索数转化率小时表
ads_relationship_area_day,                                地区统计意向用户个数天表
ads_relationship_day,                                        意向用户个数天表

每天/每月/每年线上线下以及新老学员的意向用户个数

每天/每月/每年各地区的线上线下以及新老学员的意向用户个数

每天/每月/每年各学科线上线下以及新老学员的意向用户个数Top10

每天/每月/每年各校区线上线下以及新老学员的意向用户个数Top10

每天/每月/每年各来源渠道线上线下以及新老学员的意向用户个数

每天/每月/每年==各咨询中心==线上线下以及新老学员的意向用户个数

以传智咨询为例 分为总部咨询 各个分校咨询

相当于计算传智每个咨询部门的一些指标

每天线上线下及新老学员的有效线索个数

是否可以联系成功

每小时线上线下及新老学员的有效线索转化率 = 有效线索个数 / 总线索个数

 

 3.2.2 .表与表之间的关联

3.2.3 意向线索主题DWS大宽表建表与数据导入

 (这里的从ODS 8表合一,DWS建设是存在问题的,最后会导致clue线索表里的地区数据丢失,因此直接从ods-dws并不适合这个主题,请其他同学还是先dwd-dwm-dws这样进行分层)


create database zxjy_dw;
-- 创建客户意向与线索大宽表
create table zxjy_dw.dw_customer_relationship_clue (
    --客户意向表字段
    id                       bigint                 comment '客户关系id',
    create_date_time         timestamp              comment '数据创建时间',
    update_date_time         timestamp              comment '最后更新时间',
    customer_id              bigint                 comment '所属客户id',
    first_id                 bigint                 comment '第一条客户关系id',
    belonger                 bigint                 comment '归属人',
    belonger_name            string                 comment '归属人姓名',
    distribution_handler     bigint                 comment '分配处理人',
    rs_origin_type           string                 comment '数据来源',
    creator                  bigint                 comment '意向数据创建人',
    current_creator          bigint                 comment '意向数据当前创建人:初始==创建人,当在公海拉回时为 拉回人',
    creator_name             string                 comment '创建者姓名',
    origin_channel           string                 comment '意向数据来源渠道',
    itcast_clazz_id          bigint                 comment '所属ems班级id,对应报名课程表的id',
    itcast_clazz_time        timestamp              comment '报班时间',
    ems_student_id           bigint                 comment 'ems的学生id',
    course_id                bigint                 comment '课程ID',
    course_name              string                 comment '课程名称',
    rs_follow_type           bigint                 comment '意向数据分配类型,0-自动分配,1-手动分配,2-自动转移,3-手动单个转移,4-手动批量转移,5-公海领取',                     -- 意向表分配类型
    transfer_bxg_oa_account  string                 comment '转移到博学谷归属人OA账号',
    -- 客户线索表字段
    session_id               string                 comment '七陌会话id',
    sid                      string                 comment '访客id',
    platform                 string                 comment '平台来源 (pc-网站咨询|wap-wap咨询|sdk-app咨询|weixin-微信咨询)',
    s_name                   string                 comment '用户名称',
    seo_source               string                 comment '搜索来源',
    ip                       string                 comment 'IP地址',
    msg_count                bigint                 comment '客户发送消息数',
    area                     string                 comment '区域',
    country                  string                 comment '所在国家',
    province                 string                 comment '省',
    city                     string                 comment '城市',
    valid                    bigint                 comment '该线索是否是网资有效线索',
    clue_state               string                 comment '线索状态',
    tf_origin_channel        string                 comment '投放渠道',
    zhuge_session_id         string                 comment '诸葛会话id',
    is_repeat                bigint                 comment '是否重复线索(手机号维度) 0:正常 1:重复',
    tenant                   bigint                 comment '租户id',
    clue_follow_type         bigint                 comment '线索数据分配类型,0-自动分配,1-手动分配,2-自动转移,3-手动单个转移,4-手动批量转移,5-公海领取',
    -- 静态信息表
    use_name                 string                 comment '客户姓名',
    bxg_student_id           string                 comment '博学谷学员ID,可能未关联到,不存在',
    -- 线索申诉表
    customer_relationship_first_id bigint           comment '第一条客户关系id',
    appeal_status            bigint                 comment '申诉状态,0:待稽核 1:无效 2:有效',
    -- 员工表
    employee_id              bigint                 comment '员工id  对应客户意向表的创建人id',
    real_name                string                 comment '员工的真实姓名',
    tdepart_id               bigint                 comment '直属部门  对应部门表的部门id',
    -- 部门表
    department_name          string                 comment '部门名称',
    -- 校区表
    school_name              string                 comment '校区名称',
    -- 学科表
    subject_name             string                 comment '学科名称'
)comment '客户意向与线索大宽表'
row format delimited fields terminated by ','
stored as orc
tblproperties ('orc.compress' = 'SNAPPY');



--
insert overwrite table zxjy_dw.dw_customer_relationship_clue
select
    -- 意向表字段
    t1.id,                                  -- 客户关系id
    t1.create_date_time,                    -- 原客户意向数据创建时间
    t1.update_date_time,                    -- 原客户意向数据最后更新时间
    t1.customer_id,                         -- 所属客户id
    t1.first_id,                            -- 第一条客户关系id
    t1.belonger,                            -- 归属人
    t1.belonger_name,                       -- 归属人姓名
    t1.distribution_handler,                -- 分配处理人
    t1.origin_type,                         -- 数据来源渠道(两表一样,合并)
    t1.creator,                             -- 意向表创建人
    current_creator,                        -- 意向表该条数据当前创建人
    creator_name,                           -- 意向表该条数据当前创建人:初始==创建人,当在公海拉回时为拉回人
    t1.origin_channel,                      -- 来源渠道
    itcast_clazz_id,
    itcast_clazz_time,
    ems_student_id,
    t1.course_id,
    t1.course_name,
    t1.follow_type,                           -- 意向表分配类型
    transfer_bxg_oa_account,
    -- 线索表字段
    session_id,
    sid,
    platform,
    s_name,
    seo_source,
    ip,
    msg_count,
    t2.area,
    country,
    province,
    city,
    valid,
    clue_state,
    t2.origin_channel as oc2,                       -- 投放渠道
    zhuge_session_id,
    is_repeat,
    t2.tenant,                                      -- 线索表租户id
    t2.follow_type as ft2,                          -- 线索分配类型
    -- 静态信息表
    t3.name as use_name,
    bxg_student_id,
    -- 线索申诉表
    customer_relationship_first_id,
    appeal_status,
    -- 员工表
    t5.id as eid ,
    t5.real_name ,
    t5.tdepart_id,
    -- 部门表
    t6.name as department_name,  -- 部门名字
    -- 校区表
    t7.name,   -- 校区名称
    -- 学科表
    t8.name  as subject_name   -- 学科名称
from (select * from zxjy_ods.ods_customer_relationship where deleted='false') t1
    left join (select * from zxjy_ods.ods_customer_clue where deleted ='false' and is_repeat= 0)t2 on t1.id = t2.customer_relationship_id
    left join (select * from zxjy_ods.ods_customer_i where deleted ='false')t3 on t1.customer_id = t3.id
    left join (select * from zxjy_ods.ods_customer_appeal where deleted ='false') t4 on t1.id = t4.customer_relationship_first_id
    left join (select * from zxjy_ods.ods_employee_i where deleted ='false') t5 on t1.creator = t5.id
    left join (select * from zxjy_ods.ods_scrm_department where deleted ='false') t6 on t5.tdepart_id = t6.id
    left join zxjy_ods.ods_itcast_school_i t7 on t1.itcast_school_id = t7.id
    left join zxjy_ods.ods_itcast_subject_i t8 on t1.tenant = t8.tenant;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新科研成果:在钻石中存储多比特数据,实现25GB数据密度

近日,纽约城市大学(CUNY)的研究人员已经成功地利用钻石原子结构中的小型氮缺陷作为“颜色中心”来写入数据进行存储(然后是检索)。这项发表在《自然纳米技术》上的技术允许通过将数据编码为多个光频率(即颜…

[GFCTF 2021]文件查看器

文章目录 前置知识可调用对象数组对方法的调用GC回收机制phar修改签名 解题步骤 前置知识 可调用对象数组对方法的调用 我们先来看下面源码 <?phperror_reporting(0);class User{public $username;public $password;public function check(){if($this->username"…

架构LAMP

目录 1.什么是LAMP 2.LAMP组成及作用 3.搭建Apache httpd服务 4.编译安装mysqld 服务 5.编译安装PHP 解析环境 6.安装论坛 1.什么是LAMP LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态Web站点服务…

Threejs项目实战之一:汽车外观换肤效果三维展示

目录 最终效果1 创建项目2 安装插件3 编写代码3.1 准备工作3.2 代码编写3.2.1 在template标签中构建html页面3.2.2 在style标签中构建页面样式文件3.2.3 在script标签中编写js代码 最终效果 先看下最终实现的效果 接下来&#xff0c;我们就从创建项目开始&#xff0c;一步一步…

三天精通Selenium Web 自动化 - 测试框架(一)

1 框架结构雏形 返回 新建的一个java project&#xff0c;项目名为autotest,创建如下结构 图1 框架结构雏形 base&#xff1a;里面有个基类 &#xff08;BaseParpare.java&#xff09;&#xff0c;这个类的主要作用是启动&#xff08;启动浏览器使用了TetsNG的BeforeClass&am…

P4 Qt基础控件——工具按钮toolButton(上)

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f33a;本篇简介 &#xff1a;这一章我们学一…

披荆斩棘的「矿区无人驾驶」,能否真正打开千亿级市场?

随着2022年备受瞩目的台泥句容矿无人驾驶运输项目硬核落地&#xff0c;以及相关科技公司开放该矿24小时无人矿卡生产运营直播以证明其项目并非在演示&#xff0c;2023年全国开启了大规模矿区无人驾驶商业化落地&#xff0c;堪称矿区无人驾驶元年。虽然我国矿区无人驾驶市场渗透…

【C语言】数据结构——小堆实例探究

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 导读&#xff1a; 我们在前面学习了单链表和顺序表&#xff0c;以及栈和队列。 今天我们来学习小堆。 关注博主或是订阅专栏&a…

ArkUI组件

目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image&#xff1a;图片展示组件 示例 配置控制授权申请 2、Text&#xff1a;文本显示组件 示例 3、TextInput&#xff1a;文本输入组件 示例 4、Button&#xff1a;按钮组件 5、Slider&#xff1a;滑动条组件 …

【日志技术】附Logback入门教程

文章目录 日志概论日志的体系Logback快速入门日志配置文件配置日志级别 日志概论 什么是日志&#xff1f;其实可以通过下面几个问题来了解的。 系统系统能记住某些数据被谁操作&#xff0c;比如被谁删除了&#xff1f;想分析用户浏览系统的具体情况&#xff0c;比如挖掘用户的…

常州经开区大学生音乐节——常州首届校园乐队比赛

2023年12月9日下午&#xff0c;由江苏省文化馆指导、常州经开区社会事业局主办、常州柒号文化传播有限公司承办、百吉琴行协办的青春制“燥”大学生音乐节——常州首届校园乐队比赛&#xff0c;在常州经开区文化活动中心顺利举办。 常州经开区社会事业局副局长 方姣 为本次比赛…

CPU、内存与硬盘及IO操作

目录 1、概念简介 1.1 CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09; 1.2 硬盘&#xff08;Hard Disk Drive&#xff09; 1.3 内存&#xff08;Memory&#xff09; 2、计算机程序在进行io读写操作时&#xff0c;这三者的功能和实现原理 1、概…

使用Gson完成java对象的序列化和反序列化

一、前言&#xff1a;json是什么&#xff1f;&#xff0c;Gson是什么&#xff1f; 1.JSON&#xff08;javaScript Object Notation&#xff09; 是一种轻量级的数据交换格式。易于人阅读和编写&#xff0c;同时也易于机器解析和生成。 2.Gson 是Google提供的用来在java对象…

手持式心电图机|12道便携式心电图机主板方案定制

心电图机被广泛应用于心脏状况的监测&#xff0c;可以从多个角度观察心脏情况&#xff0c;及时反映患者的病情&#xff0c;以便医生和患者了解。触摸屏使得控制和信息录入变得轻松。心电图报告提供多种语言选择&#xff0c;便于上传信息&#xff0c;实现无纸化报告。同时&#…

现代雷达车载应用——第2章 汽车雷达系统原理 2.2节

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.2 汽车雷达架构 从顶层来看&#xff0c;基本的汽车雷达由发射器&#xff0c;接收器和天线组成。图2.2给出了一种简化的单通道连续波雷达结构[2]。这…

三天搞定jmeter入门到入职全套教程之使用Jmeter录制脚本

相对于LoadRunner跟SilkPerformer来说&#xff0c;Jmeter确实有差距&#xff0c;但毕竟前两者太贵&#xff0c;Jmeter胜在免费开源。 先看下LoadRunner录制的脚本如下&#xff0c;美如画&#xff0c;结构清晰&#xff0c;易于修改编辑&#xff0c;比如做关联等。当然目前LoadR…

CSS Grid布局入门:从零开始创建一个网格系统

CSS Grid布局入门&#xff1a;从零开始创建一个网格系统 引言 在响应式设计日益重要的今天&#xff0c;CSS Grid布局系统是前端开发中的一次革新。它使得创建复杂、灵活的布局变得简单而直观。本教程将通过分步骤的方式&#xff0c;让你从零开始掌握CSS Grid&#xff0c;并在…

[湖湘杯 2021 final]MultistaeAgency

文章目录 题目是给了源码&#xff0c;我们先来看web的main.go package mainimport ("bytes""crypto/md5""encoding/json""fmt""io""io/ioutil""log""math/rand""net/http""o…

实验7:索引和视图定义

【实验目的】 1、了解索引和视图的含义 2、熟悉索引和视图的创建规则 3、掌握索引和视图的创建和管理 【实验设备及器材】 1、硬件&#xff1a;PC机&#xff1b; 2、软件&#xff1a;(1)Windows7; (2)Microsoft SQL Server 2012。 【主要内容】 索引的创建、删除、重建…

web如何实现录制音频,满满干货(下篇)

上篇中讲了&#xff0c;web如何实现录制音频&#xff0c;这一篇中&#xff0c;介绍如何播放录制好的音频&#xff0c;以及如何下载和上传音频。 播放 播放&#xff0c;其实就有很多种方法了&#xff0c;可以先上传到云服务器&#xff0c;然后生成链接&#xff0c;使用audio标…