APP下载

基于微信小程序的成绩查询系统的设计与实现

2021-05-02鲍卫华李海英

科技创新与应用 2021年12期
关键词:服务器端视图页面

李 莹,鲍卫华,李海英

(北京联合大学,北京 100101)

传统的成绩查询是基于网站Web 页面的查询,系统设计面向计算机应用,在手机上查询页面显示不友好,操作多有不便。近年来微信广泛使用,2016 年腾讯公司正式推出“微信小程序”,小程序是一种不需要下载安装就可以使用的应用,用户“扫一扫”或者“搜一搜”,就可打开应用,不需要下载APP,体现了“用完即走”的理念,大大节省了手机内存和用户时间。微信为开发人员提供了一套开发工具,开发门槛低、周期短,用户体验接近传统APP,目前网络上有种类繁多的微信小程序,应用场景涉及社交、旅游、教育、电商、餐饮、娱乐等生活和工作学习的方方面面。成绩查询微信小程序的开发和应用,使得考生可以用手机查询考试成绩,界面简洁易于操作,不仅大大方便了考生,而且独立的数据库、传输过程的数据加密和身份验证保证了敏感数据的安全。

1 系统支撑平台与安全

1.1 系统支撑平台

本软件系统的开发分为客户端开发和服务器端开发,客户端采用“微信开发者工具”,服务器端采用LAMP的框架结构,即Linux+Apache+MySQL+Php 的组合,由于这些开发工具都是开源的,这个组合是目前最为流行的开发工具组。Linux 作为操作系统,Apache 作为Web 服务器,MySQL 作为数据库服务器,Php 是用来编写网页的脚本语言。

图1 系统示意图

图2 系统软件架构示意图

在系统实现中,服务器端的操作系统租用“云服务商”提供的Ubuntu 云服务器,它是Linux 操作系统的一种,此平台需要付费,但是比较便宜,免去了购买服务器、搭建网络以及软、硬件维护的高昂成本,而且可以直接在服务商的官网上随时购买、随时使用,项目部署方便快捷。由于小程序不支持直接的IP 地址查询,需要把申请的ICP 备案域名与Ubuntu 服务器的IP 地址进行绑定,为小程序与Web 服务器进行数据交换做准备。除此之外,还需要在Ubuntu 服务器上分别从官网下载和安装Apache,Php 和MySQL,并进行配置,这三个软件工具使用免费开源版本,具体使用版本如下:

操作系统:Ubuntu 18.04.4,

Web 服务:Apache2.4.29,

数据库:MySQL 5.7.32-0ubuntu0.18.04.1

Web 页面开发工具:PHP Version 7.2.24-0ubuntu0.1 8.04.7。

1.2 系统安全

HTTP 是明文传输协议,客户端和服务器端传输的数据被攻击者拦截、窃取、篡改比较容易,身份也易被假冒者利用,为保证数据传输安全,提高业务系统的安全性,微信公众平台从2017 年起不再支持HTTP 方式调用。

SSL 证书(SSL Certificates)是HTTP 明文协议升级至HTTPS 加密协议必备的数字证书。它在客户端(浏览器)与服务端(网站服务器)之间搭建一条安全的数据加密通道,对两端之间交换的握手、数据等信息进行加密,确保客户端经过身份验证,网络中传输的数据是经过加密的密文。

本项目申请了“云服务商”提供的一年免费使用的TrustAsia TLS RSA CA,将证书文件、链文件和密钥文件上传到云端服务器上,并在Apache 中进行配置,加载ssl模块,顺利将域名访问升级到https 访问。

2 系统软件设计

2.1 系统软件架构

本系统中,考生通过智能手机打开小程序,输入姓名和密码等相关信息后,微信小程序向服务器端发出查询数据的申请,网站网页程序接收到数据申请后,从数据库查询数据,并生成格式化数据返还给微信小程序,小程序接收到数据后,将数据渲染到用户的手机界面上,用户查询成绩完成。与查询功能相对应,软件系统的设计与开发也分为客户端微信小程序、服务器端查询设计、数据库设计三个部分。

微信小程序的框架包含两部分:View 视图层和App Service 逻辑层。View 层用来渲染页面结构,AppService层具有逻辑处理、数据请求、接口调用等功能。视图层和逻辑层通过系统层的JSBridage 进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。视图层由WXML与WXSS 编写,由组件来进行展示。逻辑层将数据处理后发送给视图层,同时接受视图层的事件反馈。逻辑层提供App小程序和各个页面Page的入口,提供了丰富的API 来进行数据绑定、事件分发、生命周期管理、路由管理。

服务器端使用PHP 脚本语言编写数据库查询网页程序,并生成json 结构的数据,传给客户端小程序使用。Php 与MySQL 的接口采用Mysqli 驱动的面向过程函数,如图2。

2.2 数据库设计

本系统的功能只用一张成绩信息表即可实现,如表1 所示。

在MySQL 中建好表后,可以用工具将成绩数据导入到数据库相应的表中,以备查询。

表1 成绩信息表(Score)

2.3 服务器端数据服务程序设计

Web 服务器接收微信小程序传递过来的查询参数,将查询参数作为查询条件拼接到sql 语句中,进行查询,查出来的数据用函数处理成json 数据格式,返回给小程序。

2.4 客户端微信小程序设计

小程序接受考生用户输入的用户名、准考证号,并作为参数传递给调用的查询网页。

3 结束语

本系统设计的成绩查询微信小程序,部署在云端,考生的使用以及系统的开发、部署和维护简单易行,为教务管理以及教务系统的扩展提供了新的思路,微信小程序和云服务与传统的APP 应用相比,具有无可比拟的优势和广阔的应用前景,值得进一步研究和探索。

猜你喜欢

服务器端视图页面
刷新生活的页面
答案
Linux环境下基于Socket的数据传输软件设计
让Word同时拥有横向页和纵向页
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
Django 框架中通用类视图的用法