基于Django 的水果销售系统设计与实现

2022-04-19 01:21施宸昊
丽水学院学报 2022年2期
关键词:购物车后台页面

施宸昊

(上海交通大学 电子信息与电气工程学院,上海 201100)

我国是水果生产和消费大国,水果在居民生活中扮演着越来越重要的角色。居民对水果的需求是我国城市消费升级的一个重要参考指数,随着人民生活水平的大幅提高,我国城市的水果消费量也呈现出快速增加的态势,这种增加不仅仅体现在绝对总量的增加,更体现在品种的多样化、品质的提升等方面。在“网络时代”的现在,众多行业的互联网化不可避免,水果销售行业也到了改革的时候。本系统旨在帮助水果营销者处理日常的水果出入库、交易往来、根据消费者“偏好”推送水果信息等事务。通过使用本系统,商户可以大大降低人工成本和日常工作中因疏忽等原因产生的错误,使得商户营收得到进一步提升,消费者得到更优质的服务和更好的购物体验。

1 开发技术

1.1 开发语言

水果销售系统基于Python 语言开发,Python是一个语法简洁、可扩展的开源通用脚本语言。结合了可解释性、可编译性、交互性和面向对象,并具有良好的跨平台性[1]。与其他语言相比,Python具有简单、易学、易用等特点,同时具有海量、丰富的第三方库,功能覆盖到科学计算、Web 开发、大数据、人工智能等领域,广泛应用于各行各业[2]。

1.2 开发框架

Django 是一个由Python 语言写成的开源Web应用框架[3]。Django 框架功能完善、要素齐全、有强大的数据库访问组件、灵活的URL 映射、丰富的Template 模板语言、自带后台管理系统admin。开发过程支持MTV 的设计模式,其中Model(模型)用来构建和操作Web 应用中的数据,负责业务对象与数据库对象(ORM);Template(模版)负责封装响应结果,生成并返回要显示的页面,把页面展示给用户;View(视图)负责接收用户请求,进行业务处理,并返回响应,以及调用Model 和Template。

2 系统设计

2.1 功能模块设计

水果销售平台可以实现商家后台管理、用户管理、商品管理、订单管理等模块。实现用户注册/登录、用户信息管理、用户商品浏览、商品下单付款等功能。商家可进入后台管理模块,实现商品管理、用户管理、购物车管理等功能,整个系统的功能如图1 所示。

图1 系统功能模块设计图

2.2 数据库设计

水果销售系统后台采用MySql 数据库提供数据持久化服务[4],其具有开源、轻量级、接口规范等优点。数据库包括用户表、商品信息表、商户信息表、订单表、购物车等5 张数据表。部分表结构设计和说明如表1、表2 所示。

表1 用户表

表2 商品表

3 系统实现

3.1 Django 与MySql 数据库连接

(3)编写model 类,完成数据表结构设计;

(4)使用命令python manage.py makemigrations生成迁移文件;

(5)使用命令python manage.py migrate 实现数据表迁移[5]。

3.2 注册/登录模块

3.2.1 注册模块设计

用户进行注册时,需要输入账号、密码、手机号、验证码信息等。系统注册功能时序图设计如图2 所示。

图2 系统注册时序图

3.2.2 登录模块设计

用户登录模块设计了3 种登录方式:账号密码登录;手机号加上手机验证码登录;第三方平台登录。

第三方平台登录的原理是前端页面向后台发起获取第三方登录URL 的请求,后台根据第三方平台生成一个认证地址并将请求重定向到该地址。比如本系统中用于钉钉登录的二维码。用户使用手机扫描二维码,然后在手机上点击确定登录按钮后,就向后台请求了对应的回调函数。后台先解析回调参数获取用户信息,根据用户名、平台名、用户在该平台的UUID,查询数据库中是否有对应的用户。

3.3 商品模块

用户登录后可进入商品浏览首页,在该页面用户可浏览查看管理员发布的所有水果产品。可选择类别查看不同分类下的水果信息,同时也支持输入名称进行模糊搜索查看水果信息。

(1)根据商品模块首页的功能分析所有需要呈现的页面元素,创建商品模块首页的模板文件index.html,使用DTL 模板语言渲染[6]。

(2)编写Views.py 文件下的视图函数,使用Django 自带的数据库语言,接受Web 请求并且返回Web 响应。默认自动取出数据库中用户最喜欢的前6 种水果。

(3)设置商品浏览首页的路由,建立用户请求的URL 和视图函数的映射关系。

用户点击水果可加入购物车,点击下单后生成订单,可以查看个人中心、修改收货地址、修改基本信息、查询历史订单、查询当前订单等。

3.4 购物车模块

(1)用户添加购物车之后,后端路由访问对应的视图函数,动态渲染购物车的数量。

(2)用户选择结算按钮前,可对购物车中的水果商品列表进行选择,可修改商品数量,可删除购物车中的水果,购物车页面如图3 所示。

图3 购物车页面

3.5 商家管理模块

创建Django 的admin 模块并完成配置,实现商家后台管理。

(1)创建admin 模块

在控制台窗口输入:python manage.py creatsuperuser 设置用户名和密码,完成后台管理员用户的创建。

(2)修改项目配置文件setting.py

LANGUAGE_CODE='zh-Hans’

TIME_ZONE='Asia/Shanghai'

修改管理后台的时区和显示语言,然后在admin.py 文件中使用admin.site.register 命令完成模型注册即可使用Django 的管理程序操作商家的后台管理。

3.6 基于用户偏好的协同过滤算法

为了增强用户购物体验,在使用本系统时能快捷、方便地挑选到喜欢的水果,系统开发中使用了改进的协同过滤算法,用户登录时,首页能进行水果信息个性化推送。传统的协同过滤算法主要依据用户对商品的评分,存在的问题是:非常依赖用户评分矩阵的质量,只有高密度、海量的评分矩阵才能保证相似度计算的准确度[7],同时该算法缺乏个性化推荐功能。因此推荐效果有很大的局限性。本系统设计中,除了使用用户的评分数据,还给每一个商品增加标签信息,用于描述商品的属性信息,利用这些标签信息来进一步挖掘商品之间的联系以及用户对商品的主观偏好[8]。基于用户偏好的水果销售系统每天凌晨进行系统更新维护,更新后的数据保存于数据库中,并通过系统首页推荐信息展示,不同的用户登录所看到的推荐信息不完全一致,便于用户选购。

4 结 语

本文开发的水果销售系统,具有用户界面简洁友好、易于操作的特点。同时根据协同过滤推荐算法实现了基于用户偏好的水果销售,系统根据用户的历史购买记录,分析用户偏好,推送相关水果信息,帮助用户更好、更快捷地选购喜欢的水果,提升用户购买体验。

猜你喜欢
购物车后台页面
刷新生活的页面
被疫情改变的购物车
Wu Fenghua:Yueju Opera Artist
推购物车购物
后台暗恋
购物车里的“时间线”
清空购物车了吗!
移动页面设计:为老人做设计
后台朋友
后台的风景