二、外卖订餐系统架构设计
2.1 外卖订餐系统架构描述
本外卖订餐系统采用基于 C/S 的架构,代码的组织方式为 MVC 三层结构,其中的三个层次分别为视图层(View)、控制器层(Controller)和模型层(Model)。代码整体采取前后端分离的方式,前端负责视图层和控制器层,后端负责模型层,客户端作为 SPA 实现, 前后端通讯使用 REST 的方式。
2.1.1 视图层(View)
视图层主要负责页面的渲染,系统与用户的交互。客户端使用 HTML/CSS/JavaScript 实现,其中用到了 Foundation 和 Vue.js 框架。Vue.js 在前端页面提供了路由功能,通过调用服务端提供的 RESTFul API 进行通讯。
2.1.2 控制器层(Controller)
控制器层主要采用 Django REST framework 实现,是实现系统业务逻辑的核心,该层只需实现相应的 RESTFul API。该层主要接收来自客户端的请求,经过处理后由 REST 接口提供数据给表现层。其中功能包括注册、登陆、获取商家列表、获取食品列表、下单等。
2.1.3 模型层(Model)
模型层实现本系统实体对象的数据库访问,提供了数据库的连接,对象关系模型以及数据的持久化服务,使用 Django 提供的 model 来以 ORM 的方式将对象与数据库表关联,数据库的借口被封装在 ORM 机制内部,避免了 SQL 注入攻击。该层定义了 Customer, Seller, Food, Order 等模型。所使用的数据库有 Redis 与 SQLite,Redis 作为缓存数据库,SQLite 作为数据主数据库。
三、外卖订餐软件设计技术
3.1 技术选型
我们小组目前完成的外卖订餐软件是使用前后端分离技术开发的 Web 应用。前端是一个用 vue.js 实现的单页应用,响应速度非常快,仅通过 API 与后端 API 服务器进行交互, 后端 API 服务器使用了 Django REST framework,并使用 Nginx 作为反向代理服务器,使用 Gunicorn 作为 WSGI HTTP 服务器,利用 Gevent 作为 Gunicorn 的 worker,使用多进程 + 多协程的模型大大提高了并发性。
源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~