其他项目,点击作者主页
目录
1 系统简介
2 系统相关技术
2.1开发工具和开发环境介绍
2.2Django框架详述
2.3MySQL详述
3 需求分析
3.1 功能需求分析
3.2 可行性分析
3.2.1 经济可行性
3.2.2 技术可行性
3.2.3 操作可行性
4 系统设计
4.1系统总体设计
4.2前端设计
4.2.1用户页面
4.2.2首页信息
4.2.3订单页面
4.2.4购物车页面
4.3后端设计
4.3.1用户信息管理
4.3.2漫画类别管理
4.3.3漫画管理
4.3.4订单信息管理
4.4数据库设计
4.4.1数据库关系
5 系统实现
5.1前端实现
5.1.1网站主页
5.1.3登录页面
5.1.4购物车页面
5.1.5收货地址页面
5.1.6用户中心
5.2后台管理实现
5.2.1用户维护
5.2.3商品分类维护
5.2.4商品维护
6 总结
1 系统简介
系统设计采用了传统的MVT三层设计模式,主要用的语言为Python,使用的框架为Django,通过Vue实现前后端逻辑交互,后端使用到了两个数据库,MySQL数据库用来储存主要信息,Redis用来保存缓存信息实现登录保持。漫画商城系统共分为四个主模块:漫画商城首页模块提供漫画的浏览与检索、购物车模块主要功能批量购买与用户自定义添加漫画、订单模块显示交易后的订单信息、登录注册模块。
2 系统相关技术
2.1开发工具和开发环境介绍
漫画商城的设计于实现是基于Python语言开发的,使用的版本是Python3.10 后端使用的框架分别为Django与jinja2。后端页面管理所使用的框架为DRF,开发工具使用的PyCharm,数据库选用的是MySQL5.5版本此版本相对稳定,系统完整开发在windows10中进行。
2.2Django框架详述
Django框架是Python语音中比较成熟的一个框架,其优点非常多Django框架中封装了大量的函数使开发人员可以直接调用封装好的功能,大大缩减了开发人员的精力。本次开发就用到了许多Django框架封装好的函数,如登录的时候需要保持连接就直接用到了Django框架中的封装好的auth的功能来实现,不用开发人员在通过自己书写底层代码,Django还有自己已经封装好的模板引擎可以直接使用。
2.3MySQL详述
数据库分为两大类关系性数据库与非关系性数据库。MySQL是一种属于关系性数据库的数据库,关系性数据库储存数据的方式是通过行和列来储存,行和列加起来形成了我们所说的表,然后多个表再形成数据库。MySQL是一种查询、操作、定义、控制等综合的、通用的简单的数据库管语言,通过表和表的连接可以实现两个不同数据的交互,如设计中用户名表与购物车表的交互就是通过外键来实现的,所以这次开发我选择了MySQL数据库。
3 需求分析
3.1 功能需求分析
网络漫画商城系统的整体需求有以下几点:商品丰富、前端页面操作简单、后台管理高效简单、系统具有稳定性、在平台运行。
客户端主要提供用户的需要,面向用户部分功能,1注册功能用户可以注册为网上商城的用户,注册后用户可以继续如实填写基本信息,2用户浏览商品页面自我选择若干感兴趣的商品信息进行查询,3用户对自己喜欢的漫画可以进行添加购物车操作,4用户可以查看购买过的漫画。具体功能如图2-1所示。
图2-1 用户功能需求
后端的管理系统是专门提供给管理者进行使用的,(1)管理者访问所有的订单,也可查看、查找订单、可观看、更改用户的信息,(2)管理员对商品和订单进行管理,如新增,删除,修改及商品的分类等,(3)管理员对用户进行管理,(4)一般交流区和友情链接等。具体功能如图2-2所示。
图2-2 管理功能需求
3.2 可行性分析
3.2.1 经济可行性
漫画商城属于一种小型的购物网站,在开发过程中使用的资源相对是较少的,不需要太高的硬件支持,也不用昂贵的服务器,小型的服务器完全够用。在部署时只需要Python和MySQL这两种软件,开发人员小团队即可,开发周期短、费用低、容错率高。因此,经济方面考虑,开发这样一个系统是完全可行的。
3.2.2 技术可行性
通过长期的设计与实际证明,在设计系统中所需的功能和性能的实现方面所需要的技术,是基本的框架的应用,硬件要求不高,Python在开发网站中有着诸多优点,代码简洁高效、维护成本低、Django框架也是非常成熟的框架还有着诸多论坛就算遇到bug也可以寻求帮助。
3.2.3 操作可行性
前端操作与大众的网站一致,对大多数人来说都是简单上手的、无需适应,代码高度优化,可以同事满足多人同时访问也不会发生卡死现象,对于后端管理员,操作页面都是可视化的管理,也只需学会简单的增、删、改、查。完全用不到专业的技术支持,如果遇到bug可以通过bug日志快速分析出问题所在。
4 系统设计
4.1系统总体设计
本次毕业设计分为前端设计和后端设计,前端设计主要实现注册用户的各种功能,注册用户可以在前端页面进行漫画信息的查询、个人信息的更改、进行购买漫画等操作。后端设计主要的目的是实现后台管理人员对前端漫画的管理和对已注册用户的管理,可以实现对注册用户的增删改查,对漫画的增删改查等如图4-1所示。
图4-1 系统总体设计
4.2前端设计
漫画商城系统的开发主要运用的逻辑为前后端分离的开发逻辑,前端的页面设计与后端的代码逻辑设计通过统一的接口来进行对接实现功能交互。系统的前端初步可以分为五大模块如图4-2所示。
图4-2 前端设计
4.2.1用户页面
用户页面包含用户的注册与登录,当用户需要购买或者添加购物车时用户就需要登录以后才能实现。没有注册登录方面网站的话用户中心和购物车是无法使用的。用户可以通过首页右上角的注册链接来进行注册注册成功后自动跳转到首页,已经注册的用户可以直接登录。注册的时候,用户要设置自己的用户名和登录密码,当用户填写完成的时候后端会自动获取用户填写的信息,通过前端与后端逻辑来判断用户填写信息是否符合规定,如不符合规则则提示用户错误,用户设置的两次密码必须相同的,还需要填写验证码与手机号。这样可以确保用户记住密码。图片验证码以及短信验证码也必须一致才能完成整个注册流程。用户登录时,需提供自己已注册过的账号名和密码完成身份验证。
用户注册页面的开发,首先需要确认开发逻辑,注册页面模块开发共分为五步,(1)接受用户请求的参数并提取出用户输入的用户名,密码和手机号等关键信息,(2)校验参数,看用户是否按规格填写信息,并校验验证码是否正确,(3)保存用户注册信息,通过Django的pymysql与数据库连接写入数据库信息,(4)状态保持,把注册信息临时通过session保存在Redis数据库中实现状态保持,(5)响应注册结果,注册成功则跳转首页,注册失败则提示用户,流程如图4-3所示。
图4-3 用户页面设计
4.2.2首页信息
本模块的功能设计主要就是针对用户,给用户展示漫画商城所有的信息,帮助用户快速了解这个漫画商城的系统中都拥有哪些漫画,也就是为用户提供实现漫画的展现服务。当用户观看系统首页的时候,用户可以根据给定的漫画类别进行分类的有目的地行的浏览。还可以通过首页上方的检索模块,来实现全网站指定搜索目标文件。首页信息还设有轮播图和广告位来实现热门推荐,流程如图 4-4所示。
图4-4 首页信息设计
4.2.3订单页面
订单模块的主要功能就是给用户提供漫画商品的购买功能。这个模块的设计是在首页信息模块与检索商品模块共同的基础上实现的,用户可以通过浏览和检索获来取所想要购买的漫画书,选定购买漫画然后点击购买,然后跳转进入购买漫画的模块,系统自动为用户展现订单的列表,购买漫画的数量的可以更改的,用户可以根据自己的需求设定数量,然后系统自动计算出漫画的总价然后显示给用户。当用户确认所有信息都没有错误的时候选择提交订单,提交支付后会提示支付成功然后重定向到首页。流程如图4-5所示。
图4-5 订单页面设计
4.2.4购物车页面
因为购物车的数据比较小,结构也比较简单明了,数据更新频繁,所见在开发的时候使用Redis数据库来储存购物车数据。购物车的模块功能需要连接数据库并实现购物车数据与用户数据的绑定并确保唯一性,用户可以对购物车的数据进行增、删、改、查[5]。购物车模块细分四大功能如图4-6所示。
图4-6 购物车页面设计
4.3后端设计
Django框架已经提供了一个完整稳定的Admin管理后台,但是Admin自带的页面布局太少了,无法满足本次系统的需求,所以选择了独立开发出一套管理系统用来满足对后台数据的管理。后台的设计开发根据的是前端接口的需求和系统业务的需求,系统本身的后台模块也包含了四个字模块分别是用户信息管理、漫画类别管理、漫画管理、订单信息管理。如图4-7所示。
图4-7 后台设计
4.3.1用户信息管理
后台管理者对普通用户的管理即后台管理用户登录用户后台对普通用户信息的信息进行管理。后台管理员进入后台管理后可以看到管理员页面,管理员页面的各种功能可以通过点击查看。管理员可以通过点击用户信息管理对数据库中以注册的用户信息进行删除、修改等操作。用户信息管理模块包含四个字模块如图 4-8 所示。
图4-8 用户信息管理
4.3.2漫画类别管理
管理商品分类中,后台管理员可以通过在网站页面中双击根类别来实现增加,这时候页面会实现局部刷新出现需要录入信息的窗口,管理员依照提示依此填入即可。在一级分类完成后还可以进行二类分类使分类更加具有针对性,这时候同样需要管理员依照信息窗口录入指定信息。同时管理还可以修改每一个类别的数据如命名、级别等,如果是修改类别的话也要录入指定信息。在漫画类别管理中包含着四大主模块分别是展示已有类别、增加根类别的分类、增加子类别的分类、修改类别的分类。如图4-9所示。
图4-9 漫画类别管理
4.3.3漫画管理
后台模块的商品详情管理也就是漫画管理主要就是对漫画的增删改查[7]。其主要的功能包括新品漫画的上架、老品漫画的下架、删除不需要的漫画、修改漫画的详情信息、为漫画上传实图提参考,管理也可以从后台简单的查看商品。在实现这些功能的前提是对商品进行编码。对漫画进行编码也就是通过特定的字符来特指某一个漫画由于本次设计属于毕业设计上架的物品比较少,所以就用简单的阿拉伯数字来编码。商品的编码与商品的条码是不同的。在漫画管理模块中包含以下六个子模块,如图 4-10所示。
图4-10 漫画管理
4.3.4订单信息管理
系统中的订单信息管理模块主要是实现对用户已经购买商品的管理。主要包括订单列表的详情、订单明细、订单的处理状态。在订单列表展示模块中主要主要包含的都是一些已经生产订单的商品,订单明细包括订单的订单号、该订单的用户名、商品的成交时间、订单的状态信息。不论那一条的订单明细里面都包括订单的商品名称、订单的商品价格、商品成交的数量。对订单的修改只设定了一些简单的修改,修改订单的状态。在订单管理模块中包括以下的三个子模块,如图4-11所示。
图4-11 订单信息管理
4.4数据库设计
4.4.1数据库关系
漫画商城系统共用了两个数据库Redis与MySQL,MySQL用来保存用户的基本信息和商品的基本信息,Redis数据来实现购物车信息保存和登录用户保存连接。数据库的设计在任何系统中都是非常重要的数据的逻辑关系设计清楚了,就可以大大提供系统运行效率,为了能够更好的体现数据库的结构与逻辑,我通过E-R图的形式来表现出个个数据库表之间的逻辑关系如图4-12所示。
图4-12 总体E-R图
用户实体图创建用户后用户具有的各种信息,如图4-13所示。
图4-13 用户实体属性图
收货地址实体图包含了收货地址所具有的信息,如图4-14所示。
图4-14 收货地址实体属性图
漫画信息实体图包含了一本漫画所具有的所有信息,如图4-15所示。
图4-15 漫画信息实体属性图
订单实体图包含了所产生订单的各种信息,如图4-16所示。
图4-16 订单实体属性图
用户管理实体图包含了管理员的各种信息,如图4-17所示。
图4-17 用户管理实体属性图
5 系统实现
5.1前端实现
5.1.1网站主页
网站主页主要包含各种功能的链接与展示漫画,左边是漫画分类,右边是轮播图,下方是新品排行和热门排行,右上角有登录和注册的链接,中上方用户可以进行商品搜索,整个前台的界面主要的功能是展示漫画为主。前台的设计页面如注册页面,顾客通过点击首页上方的注册按钮填写过信息就可以注册一个自己的账户了。如图5-1所示。
图5-1 网站主页
5.1.2注册页面
用户注册页面就是让用户提供信息让后把用户提供的信息填入数据库。以此后续操作来认定用户,需要用户填写用户、手机号、密码等,当窗口的输入框为空时并鼠标失去焦点时提示用户输入5-20长度的字符。如果输入的长度不符合规定长度的话也会提示用户输入有误,手机号和密码的判定逻辑是同样的。用户名和手机号还需要后端查询数据库来判断用户名和手机号是否已经存在,注册页面一共进行了两次错误判定一次前端一次后端,判定的逻辑是一样的后端的判定主要是为了防止其他用户恶意注册,当用户完成注册时候会自动跳转首页并保存用户注册信息。如图5-3所示。
图5-3 用户注册页面
5.1.3登录页面
登录页面的逻辑判定与注册有一些相似,登录页面的判定主要是当后端接受到前端发送的请求的时候,当用户输入信息点击登录时,前端会通过Vue提取出用户的密码与用户名提交给后端,然后后端接收到数据负责进行校验,当验证无误后会重定向到首页并通过Cookie实现在客户端首页右上角显示用户名,用户输入的密码和用户名任何一个错误都会提示用户,用户名或密码错误。如图 5-5所示。
图5-5 用户登录页面
5.1.4购物车页面
购物车模块的主要功能是当用户遇到自己喜欢的商品,可以通过点击商品右边的购物车图标来实现添加购物车,购物车页面的主要信息有收货人的地址以及收货人的姓名,商品的数量、商品的信息、商品的价格、以及删除已经加入购物车的商品。用户还可以通过全选来实现对所有商品的一个管理,可以批量删除或者批量购买。当用户选择全选或者勾选需要的商品系统会通过后端计算显出商品的总价格。如图5-7所示。
图5-7 购物车页面
5.1.5收货地址页面
收货地址设计需要绑定数据库来完成当选择省份的时候,会显出该省份所有的城市,选择城市的时候显示获取该城市的所有区县并显示出来,用户通过选择大概地址信息,然后自己填写详情信息如详细地址、收入姓名手机号等。最后填写完成点击保存按钮会自动关联到数据库并绑定到用户的用户名上面实现表的链接。如图5-8所示。
图5-8 收货地址页面
5.1.6用户中心
用户中心是针对用户的,把用户可以更改的信息和权限集中到了一起。用户中心包含四个方面的内容,1用户可以通过用户中心中的个人信息查看自己的用户名和联系方式还可以自己添加用户邮箱,2用户可以通过点击用户中心中的收货地址跳转到用户收货地址页面实现对收货地址的更改,3用户可以通过点击用户中心的全部订单查看自己已经购买的漫画信息,4用户可以通过点击修改密码来更改自己原始的密码,5在用户中心正下方显示用户最近浏览过那一些漫画。如图5-9所示。
图5-9用户中心页面
5.2后台管理实现
5.2.1用户维护
用户名管理的页面主要显示的有用户的总量、用户的基本信息、页面数、总页码数、还有页容量,其中密码一栏是乱码的原因是因为后端使用了密码加密。用户管理是给后台管理员提供对用户进行数据修改和删除功能的。所以用户管理的实现需要对接用户的数据库来进行数据查询[12]。如图5-10所示。
图5-10 用户维护
5.2.2轮播图维护
轮播图的就是前端首页轮播的广告,轮播图的管理实现的功能主要有(1)添加新的轮播图需要添加轮播图的示意图和轮播图重定向的地址以此来跳转到商品详情页面,(2)删除功能,对目标轮播图进行删除点击删除会通过get请求发送需要删除的id然后返回Json数据实现交互达到删除功能。如图5-11所示。
图5-11 轮播图维护
5.2.3商品分类维护
分类管理是后台管理员通过添加、删除、修改来管理前端的商品所属的类别,设置有两个等级的分类父分类是商品的类型如热血、冒险、恋爱等,当管理用户选择完一级分类的时候二级分类框会给出固定的选项。如男生类别、女生类别、少儿类别,来实现分类管理[13]。如图5-12所示。
图5-12 商品分类维护
5.2.4商品维护
商品维护页面可以通过左上角的添加来实现给前端网页来增加新的漫画,进行添加漫画的时候需要填写漫画名称、选择漫画分类、添加漫画图片、最后点击完成来实现漫画的增加,管理员可以通过搜索来指定删除漫画。也可以通过左上角的按钮来批量删除漫画,管理员还可以通过输入漫画名称来直接查找漫画。或着通过漫画的分类来查找某一类别的所有漫画[14]。如图5-13所示。
图5-13 商品维护
6 总结
在本次的毕业设计中遇到了许多问题,刚开始不知道语法糖方法的使用,对变量的命名也没有直观性,不懂类的继承和程序的封装,经常直接用共有储存来储存类里面的信息,还经常在CSDN上看别人的设计逻辑,不过经过这几个月的学习与努力,从对Python的一知半解到现在的灵活运用,从对数据库的一无所知到现在的初步掌握,通过对这次毕业设计的设计与开发,使我受益非常多,当看见自己写的程序一点点完善起来,页面一点点充实起来的时候真是莫大的幸福与欣慰。
源码+过程性文档+论文