开发工具Vs code(vim),开发环境Linux(CentOS7),使用语言C/C++,数据库MySQL,
相关库Jsoncpp,cpp-httpib,MySQL第三方库
项目相关概念
站
站本质上是一个HTTP服务器+若干个 页
软件工程流程
1>背景调研
2>需求分析(复杂且重要)
3>概要设计
4>详细设计
5>编码
6>测试
7>发布
MySQL第三方库c版本
Json
- JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
cpp-httplib
- 一个header-only的跨平台HTTP/HTTPS服务器和客户端C++库
MVC框架模式
- M:model——>和数据相关的操作,就是写的服务器,前面的ddb.hpp
- V:view——>和界面相关
- C:controller——>HTTP核心操作
Vue
-
Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。
Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。
HTML(标签化语言)
常见标签:
1.div(一个容器,块级元素,独占一行) ___2.span(一个容器,内联级元素,不独占一行)
3.h1-h6一级标题->六级标题____________4.p (段落,和div差不多)
5.img (图片.src属性指定图片的url)_______6.a(超链接href属性,指定跳转到哪个新页面)
#任何一个标签都有一个class这样的属性,描述标签的颜色,大小指定哪个css文件
操作步骤
创建库表 ,在db.hpp里封装MySQL的API,在order_server.cc(http服务器)对请求解析调用封装的方法并返回响应。
model层数据库部分↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓.
创建数据库与表
- 1.创建db.sql文件,实现如何进行mysql语句的批量执行。
- 2.对*.sql文件进行编写
- 3.mysql -uroot < db.sql ,一键生成表。
客户端和服务器之间的接口设计
- 使用代码操作数据库,实现一个MySQL的客户端,完成对数据库的增删改查。
- 选择Restful风格的接口(API)设计。
- 使用Json格式组织数据
- 对服务器端进行API配置
db.hpp具体内容:
封装创建MYSQL句柄并建立连接>>>>>MYSQL类提供了很多方法,使用起来也很方便,还需要设置编码方式
设计两个操作数据库的核心类>>>>>DishTable类(封装了对菜品信息的管理方法),OrderTable类(封装了对订单信息的管理方法)
释放句柄
controller层HTTP服务器核心操作部分↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓.
-
服务器核心流程:
1.读取请求并解析(反序列化)
2.根据请求进行响应(与业务相关)
3.把响应写回到客户端(序列化)
开始编写order_server.cc(http服务器)
具体内容
- 创建并初始化MYSQL操作句柄>>>>包含了db.hpp,直接调用
- 定义dish_table与order_table并与MYSQL句柄建立连接
- 创建Server对象>>>>>>>Server类提供了很多方法,可以处理客服端请求
- 具体说一下Post(插入菜品)方法:
1.定义Json格式的请求与相应,声明Json格式的两个方法
2.获取数据并转换为Json格式>>>>>>>>>若转换失败返回错误响应
3.校验Json中的信息>>>>>>>>>若格式错误失败返回错误响应
4.调用数据库操作进行插入>>>>>>>>>>使用db.hpp的dish_table::Insert方法
5.构造正确的响应- 每一个请求都要进行如上过程,根据响应的不同会稍有差异
- 进行监听>>>>>>>>server.listen(“0.0.0.0”,9094);//listen函数一旦执行便是死循环,程序不往下走了
构造HTTP请求,使用Postman进行HTTP服务器测试
客户端,前端 页部分↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓.
三大部分:
- HTML 描述 页的基本结构,可以说是一个 页的骨
- CSS 描述页面的样式,可以说是一个 页的皮
- JavaScript 描述 页和用户的交互动作
下载HTML模板进行修改,选出需要的部分,将HTML文件拷至服务器所在文件夹,输入url可以看到页面效果。
完善 页与需要继续学习JavaScript。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!