前言
我们在前面的课程完成了企业网站后台的功能,本章节开始我们来完成一下企业网站的前端部分,主要目的:还是为了給大家加强回顾一下前面所学的知识,包括:模版引擎的语法、vue的语法、api接口写法及调用等等知识点。
准备
企业网站的前端页面,我们就拿第一学期我们自己动手开发的企业网页为例,你可以把我们开发的这些网页看成是企业网站的前端页面模版,其实它的实现原理,和我们刚刚开发完成的后端是一样的逻辑。
没有学习过我们第一学期开发企业网页课程的同学,去群里面下载本节课的课件,课件里面有企业网页的模版代码。
学习过我们第一学期开发企业网页课程的同学,你也可以去群里面下载本节课的课件,如果你不想下载,可以跟着老师操作。
# 一、引入模版
跟着老师的视频一起操作,加深印象,以后你在网上下载的网页模版都可以这么操作
# 1.引入模版静态资源放在public文件夹里面
路径可自定义,如:app/public/api/template01/静态资源
# 2.项目视图view文件夹里面创建一个主模版看效果
路径可自定义,如:app/view/api/template01/main_app.html,随便写点东西
# 3.写一个方法,来测试看一下这个主模版
找一个或创建一个控制器,app/controller/api/template01/api.js
async home() {
const { ctx } = this;
await ctx.render('api/template01/main_app.html');
}
# 4.定义一下路由
创建一个路由文件 app/router/api/template01/router.js
module.exports = app => {
const { router, controller } = app;
//看一下模版
router.get('/api/template/01', controller.api.template01.api.home);
}
总路由进行分组 app/router.js
//分组
require('./router/api/template01/router')(app);
# 5.主模版引入代码
注意修改模版代码引入静态资源的路径
app/view/api/template01/main_app.html
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>模板页</title>
<link rel="stylesheet" href="/public/api/template01/static/css/common.1.0.css">
<link rel="stylesheet" href="/public/api/template01/static/css/iconfont.css">
<link rel="stylesheet" href="/public/api/template01/static/css/style.css">
</head>
<body>
<!-- 头部 -->
{% include "api/template01/_header.html" %}
...
<!-- 底部 -->
{% include "api/template01/_bottom.html" %}
</body>
</html>
头部 app/view/api/template01/_header.html
<!-- 导航栏 -->
<div class="flex justify-center" id="nav"
style="position: fixed;left: 0px;right: 0px;top: 0px;z-index: 1;background-color: #ffffff;">
<div style="width: 1200px;" class="flex justify-between align-center">
<!-- 导航栏的左边 logo图 -->
<div class="left-logo flex align-center">
<img src="/public/api/template01/static/image/logo.png" />
</div>
<!-- 导航栏右边部分 导航内容部分 -->
<div class="right-div flex align-center ">
<a href="#" target="_blank">网站首页</a>
<a href="#" target="_blank" class="active">关于我们</a>
<a href="#" target="_blank">资讯中心</a>
<a href="#" target="_blank">主营业务</a>
<a href="#" target="_blank">工程案例</a>
<a href="#" target="_blank">联系我们</a>
</div>
</div>
</div>
底部 app/view/api/template01/_bottom.html
<!-- 底部 -->
<div id="page_footer" class="flex justify-center py-5">
<div style="width: 1200px;" class="flex justify-between">
<!-- 左边 -->
<div class="flex align-center">
<!-- logo -->
<img src="/public/api/template01/static/image/footer_logo.png" style="width: 107px;height: 107px;">
<!-- 地址信息 -->
<div class="ml-2 text-light-muted">
<p>睿晨电网建设工程有限公司</p>
<p>地址:北京CBD帝国大厦999层-1001号</p>
<p>
copyRight <sup>®</sup> 睿晨电网 版权所有 京备案号101110000-1号
</p>
</div>
</div>
<!-- 右边 -->
<div class="flex align-center">
<!-- 电话图标 -->
<img src="/public/api/template01/static/image/footer_tel.png" style="width: 56px;height: 56px;">
<!-- 电话 -->
<div class="ml-2 text-light-light-muted">
<p>业务咨询电话</p>
<strong class="font-max">010-8888-8888</strong>
</div>
</div>
</div>
</div>
这样就简单引入了一个新的模版到我们的项目中了,如果之后你有其他模版,也是按照这个方式引入。
# 二、企业网站首页
我们在前面课程将整个网站后台给大家讲解了一遍,后台页面模版部分,我们是将相同的部分提取出来,不同的部分:表单、表格,我们通过封装一个模版方法,通过向模版方法传递不同的内容,来显示我们需要的界面。那么我们的前端网页其实也是一样,因此接下来做起来应该是非常容易了,大家跟着老师一起再来操作一次,复习一下我们模版引擎的语法和我们vue的语法。
(由于内容较多,在单独页面讲解本内容) 具体查看:企业网站首页
# 三、企业网站其它页面(非首页)
(由于内容较多,在单独页面讲解本内容) 具体查看:企业网站其它页面(非首页)
# 【第二学期第3季课程】其它章节
# 章节1.课程介绍
# 章节2.Egg.js基础
# 一、关于Egg.js
# ① 安装Egg.js项目
# ② 写一个api接口进行测试
# ③ 说明一下,关于调试课件代码的问题
# ④ 自定义创建一个控制器
# 二、eggjs中的get请求post请求处理
# ① get方式路由传参:带?获取参数 ctx.query.参数名,不带?获取参数 ctx.params.参数名
# ② 设置响应状态码: ctx.status
# ③ post请求参数处理
# 一、安装get/post等请求的调试工具:postman
# 1. 下载postman
# 2. 安装postman
# 二、post请求获取参数:ctx.request.body
# 1. 关闭csrf功能开启跨域请求
# 2. eggjs中post请求:ctx.request.body
# 三、案例:eggjs + postman测试工具完成留言数据写入json文件
# 四、mysql(MySQL)数据库基础
# 五、eggjs项目中sequelize模型创建mysql数据库
# 1.安装egg-sequelize 插件
# 2. 在config/plugin.js中引入 egg-sequelize 插件
# 3. 在config/config.default.js中配置数据库连接
# 4. 安装 sequelize-cli插件
# 5. 数据库 Migrations 迁移文件相关的内容都放在database目录下
# 6. 初始化 Migrations 配置文件和目录
# 7. 在生成的database/config.json 修改一下配置内容
# 8. 创建数据库
# 9. 创建数据库迁移文件
# 10. 执行 migrate 进行数据库变更创建表
# 六、egg.js项目中sequelize模型新增数据到数据库
# 1. 创建模型文件
# 2. 编写模型文件
# 3. 插入一条数据到数据库:create方法
# 3.1 定义路由
# 3.2 定义控制器
# 4. 批量插入数据到数据库:bulkCreate方法
# 5. 修改器set()方法:数据插入到数据库前可自动修改成指定要求的数据
# 七、egg.js项目查询数据
# 1. 查询数据库中的单个数据:主键查询方法:findByPk(主键字段)、如果需要多个条件,可以使用findOne方法
# 2. 查询数据库中的多个数据:查询多个findAll(),查询多个并统计条数findAndCountAll()
# 3. 获取器get()方法:查询数据后可自动修改成指定要求的数据
# 八、egg.js项目sequelize模型where操作符
# 示例
# 1. where操作符
# 2. where操作符范围选项
# 九、egg.js项目sequelize模型查询结果指定字段、排序、分页
# 1. attributes属性指定返回的字段,exclude属性指定排除的字段
# 2. 排序:order
# 3. 分页:limit指定每页返回多少条数据、offset指定偏移量
# 示例
# 十、egg.js项目sequelize模型更新数据
# 1. 更新数据:save方法,指定修改字段fields属性
# 2. 如果觉得save方法更新字段非常麻烦,可以使用update方法批量修改字段,第二个参数可指定修改字段
# 十一、egg.js项目sequelize模删除、批量删除数据:destroy方法
# 十二、错误和异常统一处理
# 十三、中间件配置
# 十四、参数验证
# 1. 安装插件
# 2. 配置插件 config/plugin.js
# 3. 配置 config/config.default.js
# 4. 控制器举例
# 5. 参数验证的错误提示在中间件中设置一下
# 6.ValParams API 说明
# 十五、路由分组
# 1. 新建 app/router目录,在该目录下新建对应控制器名文件
# 2. 在app/router/message.js中写路由
# 3.在app/router.js中按控制器指定分组
# 十六、模版引擎
# 1. 安装模版渲染插件
# 2. 在config/plugin.js中配置插件
# 3. 在config/config.default.js中配置模版引擎
# 4. vscode安装一下nunjucks模版引擎扩展,方便代码提示
# 5. 新建 app/view目录,以后所有模版放这个目录里面
# 6. 控制器 app/controller/home.js 写一个方法
# 7. 重启项目,访问路由即可看到网页内容
# egg.js基础课程总结
# 章节3.响应式网页布局
# 一、响应式网页布局是什么
# 二、响应式网页布局的实现方法
# 三、简单的响应式页面案例
# 四、Bootstrap框架
# 五、响应式后台管理系统(egg.js + Bootstrap)
# ① 搭建界面引入模版html文件
# ② 创建管理员(页面、创建数据库表及提交数据)
# ③ 管理员列表
# ④ 管理员列表分页功能
# ⑤ 公共模板开发
# ⑥ 后台管理员登录
# ⑦ 后台用户留言板管理板块
# ⑧ 优化公共模版表格能够显示头像
# ⑨ 后台左侧菜单栏
# ⑩ 上传文件
# ⑪ 上传或修改管理员头像
# 章节4.Egg.js和Mysql数据库进阶进一步开发网站后台
# 一、用户管理板块(以直播功能中的用户表liveuser表为例)
# ① 用户管理板块说明
# ② 具体实现过程
# 二、礼物管理(以直播功能中的礼物表livegift表为例)
# ① 礼物管理板块说明
# ② 具体实现过程
# 三、订单管理(以直播功能中的订单表liveorder表为例)
# ① 初步理解关联关系
# ② 具体实现过程
# 四、直播间管理(以直播功能中的直播间表live表为例)
# ① 多模型关联查询实践
# ② 具体实现过程
# 五、mysql语句进一步理解模型关联关系(Mysql进阶)
# ① 关联关系进一步说明
# ② mysql数据库基础-三、mysql子查询和连表查询(文档搜索:mysql子查询和连表查询)
# 六、企业网站栏目管理、内容管理
# ① 企业网站栏目管理、内容管理说明
# ② 企业网站后台栏目管理具体实现
# ③ 企业网站后台内容管理具体实现
# 七、网站配置管理
# ① 网站配置管理代码实现
# 八、后台初始化管理员登录逻辑
# ① 登录逻辑代码实现
# 九、简单权限管理
# ① 管理员栏目:超级管理员可以查看所有管理员,普通管理员只能看自己
# ② 权限分配
# ③ 网站后台管理员简单权限分配功能实现
# 章节5.企业网站前端部分
# 其它学期课程
# 第一学期(学习顺序:01)
第一学期课程专为零基础的学员定制录制的,纯html+css做企业网站的网页,主讲html和css的相关基础知识,flex布局相关知识,封装css基础样式库,引入字体图标及网页开发基础布局思维,完成企业网站网页的开发过程。
[第一学期学习视频]
# 第二学期【第1季】(学习顺序:02)
# 第二学期【第2季】(学习顺序:03)
JavaScript中的面向对象,类,ajax,封装js库过渡到jQuery, vue.js基础配置网站页面,建议所有学员观看。
[第2季学习文档] [第2季学习视频]
# 第二学期【第3季】(学习顺序:04)
egg.js基础,响应式网页布局,Bootstrap框架,响应式后台系统管理,建议所有学员观看。
[第3季学习文档] [第3季学习视频]