赖威良,李育琼,苏雪滢,周颖,罗文勇
(广东第二师范学院,广东 广州 510303)
根据《义务教育美术课程标准》的要求,结合当前共享教育、公益教育、美术教育在国家各类政策的正确引导不断进步的情况,以及二手交易市场迅速发展的背景,我们认为开发美术资源共享服务网站顺应时代发展潮流,能够促进社会美术教育的发展。
Python 是目前广泛应用的一种解释性语言,专门为电脑编程而设计。它的设计初衷是为了实现自动脚本的编写,由于版本不断升级,新的语言特性的加入,使其在一些独立的大型开发中得到了广泛的应用。
Python 有着非常重要的地位,它的源代码和解释程序CPython 都需要遵守GNU 通用公共授权协议(GPL),从而推动Python 的开发和运营。此外,Python 的脚本语言更简洁、更清晰,它具有语法简单、开放、可扩展、可解释、可嵌入等特点,易于理解,能极大地加快服务器端的运算速度,并能按照使用者的特定操作实现相应的算法。
美术资源共享服务网站采用Django 框架,Djiango 是一种基于Python 编写的Web 开发框架,其使用MVC 的设计模式,为了提高网络开发效率,Django 框架已经内置了表单、路由、认证、后台管理等,支持多种插件和自建工具包。程序员不需要为程序技术模块做重复工作。Django 不仅能在一定程度上降低网站开发和维护的复杂度,还能通过较少的功能代码实现较复杂的功能,因此其在系统运行的稳定性、执行速度等方面都是有提升的。
Python 自带有数据库SQLite,它是一个轻量级数据库。SQLite 可以搭配Python 共同开发网站,也可以创建有数据存储的工具。SQLite 也被广泛运用于其他领域,比如HTML5 和手机端。SQLite 基础结构是使用C 语言,而且体积非常小,因此它常常被整合到不同的应用中,甚至是iOS和Android 的应用。
SQLite 轻型数据库的设计目标是嵌入式的,被运用于许多嵌入式产品中,它占用的资源低,对于嵌入式设备来说,仅需数百KB 的存储空间就足够了。与MySQL、PostgreSQL 相比,这款软件的开发效率要高得多。
功能架构是整个系统的核心,也是系统运行的重要组成部分。按照本系统的需求,总体上采用模块化的方式,系统由三个主要部分组成:前台系统、后台系统和数据库系统,即用户平台、管理员平台和数据库存储。
其中后台管理模块主要负责管理系统的所有资源,拥有系统的所有权限,可以对用户的信息,购物商品种类数量,订单、购物车、资源下载、新闻和通知公告等功能进行统一管理。后台管理系统既是将前、后两个系统连接起来,又是数据库的重要组成部分。
前台系统模块又可分为商品交易模块、用户自主模块、学习模块、资源下载等,用户在前台可以进行商品浏览、新闻查看、知识学习、资源下载等相关操作。
数据库存储则是保存管理员信息、用户信息、商品信息以及新闻和资源下载的全部信息,总的来说是整个网站的所有信息,并对各种数据进行不同的管理,以防止数据的混淆和重复。
通过需求分析,基于MTV 架构思想设计了该系统,系统总体功能框图和总体界面图如图1 和图2 所示。
图1 系统总体架构设计图
图2 系统网站总体设计界面
前台功能设计主要包括以下8 个模块:
(1)用户登录模块。以游客的身份进入系统平台可以浏览学习资源、新闻和商品信息,如果要进行商品下单、购买、结算和评价等操作,则会自动转到注册页面,进行账号的注册。用户在该平台输入登录账号和密码时,系统会判断用户的账号是否存在或者正确,如果账号不存在或者密码不正确,系统会提示修改密码或注册账号,用户进入注册界面;如果用户账号存在,并且密码正确时,则显示成功登录。用户注册时,注册信息不得填写有误或为空,不符合网站要求时,系统会提示错误,例如用户名需填写5 ~20 个字符,邮箱则需要填写正确的邮件格式;注册成功且验证账号和密码通过后,系统登录成功。用户可以继续下一步的操作,系统向其开放相关的权限。
(2)个人信息模块。用户登录后,需要填写个人详细信息,例如账号密码、订单管理、收货地址、地址邮编等。该模块负责管理每个人的登录密码,用户可以输入旧登录密码依次验证后,修改成新的密码。
(3)商品展示模块。该模块是对浏览商品、查找搜索以及商品上架功能的设计。商品查找模块主要包括搜索框模式和导航选择栏模式,可以很好地解决用户的各种需要,提高购物体验。商品评价模块是指用户在浏览商品信息时,可以对商品进行评价或留言,并且可以看到其他用户的评价和留言。商品展示模块主要用于将商品的信息显示在该平台上,从而使用户能够通过该信息进行浏览和搜索商品。
(4)购物车订单模块。游客身份下无法使用购物车功能。登录账号后,用户浏览商品可以点击添加按钮,添加到购物车中,系统会提示成功;用户也可以直接到我的购物车中查看选购的商品。购物车用于对用户拟购买的商品进行统一管理和统一下单。购物车的实现可以方便用户进行商品选购,提高用户购物效率。
(5)订单管理模块。订单管理模块可以实现用户对自己已完成的订单、未发货的订单和未收货的订单的管理。订单管理模块按照订单的生成时间进行排列,时间早的排在前面。用户可以点击查看订单的详细信息,例如订单时间、订单的商品数量和价格、订单号等。
(6)学习天地模块。传统的美术教育方式缺乏生动性,也不能及时体现最新的美术知识,不符合当代大学生朝气蓬勃、意气风发的特点。在学习资源模块中用户可以查看浏览学习资源,例如绘画技巧、工具的推荐和选择、当代美术学者的心得体会,等等。
(7)美术新闻和通知公告模块。用户在未登录和登录状态都可以浏览美术专业相关的新闻知识,足不出户知天下。具体可以查看新闻发布时间、事件、相关文字和图片以及浏览次数等,此外还可以通过关键字查询相关新闻;通知公告模块可以查看美术资源网站的最新消息,例如网站维护人员以及信息,网站的使用说明和建议,等等。
(8)资源下载模块。该模块功能游客和用户都可以使用,其主要功能是为游客和用户提供可下载的资源,如高人绘画技巧、心得体会、古代艺术的绘画视频等。该模块支持视频格式、压缩包格式、doc 和Excel 文档格式和HTML 模式,并且按照时间顺序排列。
后台管理模块包括订单信息、新闻信息、资源下载信息/、用户信息、商品信息和购物车信息等。系统管理员打开系统后台管理地址,输入管理员账号和密码,才可以对系统进行后台管理操作。主要是辅助储存用户的账号密码、商品的详细信息、商品的添加和删除、订单信息、网站前台内的图片/影音/文字以及资源文件的添加和删除等。总的来说就是对网站数据文件的快速操作、及时更新和修改前台内容。
(1)管理员登录模块。点击登录后台管理系统,输入管理员账号密码,验证通过进入后台管理系统,管理员拥有整个系统的所有权限,可以查看网站的所有信息。
(2)用户信息管理模块。主要是管理员有权限对用户账号进行增加、删除和修改个人信息、收货地址、购物车和订单等,还可以查看该用户浏览了那些商品记录,即后台管理员对用户信息的管理。
(3)商品管理模块。对商品进行更为具体的整理,主要包含商品图片、名字、类型、售价、浏览量、库存、商品简介和商品详情等有关信息。
(4)购物车和订单模块。管理员拥有在后台系统浏览查看所有用户的购物车和订单详情的权限,例如商品的名称和商品总价等,并且管理员能够删除和修改购物车和订单。
(5)新闻模块。前台的新闻模块是由后台系统管理员添加和修改的,管理员在后台增加新闻信息,如新闻题目、全部内容、相关图片、新闻类型、发布时间以及浏览量等。
(6)资源下载模块。该模块主要由后台管理员负责管理,支持各类型的文件上传供用户和游客下载。
数据库的设计是否合理直接关系到整个系统的功能和安全。因此,在数据库中要尽可能地减少数据的冗余,同时要尽可能地缩小数据库的大小,同时尽可能地加快数据的存储。本文根据自身的实际状况,将SQLit 应用于本系统。由于数据库的范例和限制,在数据库中使用了一种不同的类型,以最大限度地减少数据的堆叠。
数据库E-R 图指的是实体—联系图,用于描述相关的概念模型,如图3 所示,根据美术资源共享网站的总体架构,可以得出上述几个界面的E-R 图。以轮播图为例,共含三个实体类型,分别为:后台管理员、用户、商品。
图3 系统网站的E-R 图
一个完整的网站项目拥有较多的访问页面和多种不同功能的应用模块。如果将所有的页面访问和逻辑实现全部放在一个应用下进行开发,将会造成项目的冗余以及结构的混乱,不利于组件的复用,使得项目后期维护和扩展变得异常困难。Django 提供了一种多应用机制,即一个Django 项目可以包含多个应用,每个应用可以实现一定的功能,或者每个应用对应部分访问内容。系统整体界面图如图4 所示。
图4 系统整体界面图
本系统前台页面布局主要以简洁的网页页面风格来展示商品信息,主要包括首页、美术商品展示页面、商品详情页、商品查询页、新闻信息展示页和学习资源共6 个页面的实现,将本系统的商品总共分成6 个大类别(工具类、材料类、练习用品、装饰用品、作品和其他类)来进行分类展示。
这个系统的前台用Bootstrap 的导航条部件跳转到主页上,在Myshop 文件夹中创建一个新的templates 文件夹,用来存储HTML 范例,然后在这个文件夹创建新的base.html文件,再利用网页复用的形式,把网页中同一网页的同一部分分开,形成一个共用网页,而其他网页则在制作过程中加入共用网页。页面复用继承标签调用形式为:
{% extends ‘base.html’ %}
通过这标签的使用继承base.html 的页面内容。
动态页面声明标签调用形式为:
{% block head %}
{% endblock head %}
后台用户登录模块由Django自带的强大后台管理系统,通过该后台管理系统可以方便地对数据库模型进行管理和操作,具体地,Django 能够根据定义的模型自动地生成管理模块。
使用Django 的管理功能只需要以下两个操作:
(1)创建超级管理员。具体命令为:python manage.py createsuperuser。
(2)注册模型类。超级管理员账户创建完成后,登录后台管理系统。在后台管理系统中,通过使用可视化按钮可以方便地操作数据库模块。输入创建好的超级管理员账号密码验证成功后进行登录。后台管理系统如图5 所示。
图5 后台管理系统界面图
Django 数据库模型来渲染网站页面,其基本实现流程是用户通过浏览器请求页面,服务器收到浏览器请求,根据URL 路由找到匹配的视图处理函数,视图处理函数首先找到需要返回的HTML 模板文件,然后从数据库中取出数据,然后通过将数据过滤后以模板变量形式插入到模板文件中,最后通过render(函数)返回生成的页面,浏览器收到请求页面并显示。
美术资源共享服务网站,基于Django 的Python Web 的开发,采用MTV 的框架开发模式实现了前台的商品分类、商品交易、用户学习等展示和后台的商品信息和用户信息管理的系统,这一网站的建立,让美术爱好者在学习生活中的一些资源得到更加合理、丰富、可持久的利用,提高了资源利用率,其操作简单明了,设计人性化,极大地为用户提供了方便。此外,新闻和学习模块能有效提高美术爱好者的知识和素养。