基于Python+Django+MySQL的超市管理系统课程设计

基于Python+Django+MySQL的超市管理系统课程设计

基于Python+Django+MySQL的超市管理系统课程设计-创享日记
基于Python+Django+MySQL的超市管理系统课程设计
此内容为付费资源,请付费后查看
16
立即购买
您当前未登录!建议登录后购买,可保存购买订单
付费资源

资源概况

购买将获得:完整论文报告+软件设计说明书+项目源码源文件
其他注意:一经购买,概不退款,不提供指导,每年数量有限,售完为止。

资源介绍(截取部分,完整请购买)

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

1.开发背景

随着人们生活水平的提升,日常消费水平也在逐渐提升,为了满足人们的生活需求,出现了越来越多的综合型的大型超市,这些为人们生活提供了便利,为了更好的管理超市,某超市想要开发一套功能完善的管理系统。

2.系统描述

2.1需求描述
通过超市实际调研和行业对比发现,超市管理基本可以分为两个方面的管理功能,即基础信息管理以及运营管理,其中基础信息管理功能需要包含系统用户、商品分类、商品信息、会员等级这些内容的管理功能,这些信息和其他内容息息相关,而运营管理方面需要包含会员信息、销售信息、采购信息的管理功能,这些是超市运营产生的数据,需要将必要的信息记录下来,帮助超市管理人员了解日常经营情况。

2.2功能描述

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

通过前边的分析,我们初步了解了超市管理系统的功能需要,这里我们将它们大概分成三个部分,即通用功能、基础信息管理、超市运营管理,如下是关于这三个方面的介绍
通用功能,这是系统的基础功能,不论是什么身份的用户都可以使用这些功能,用户必须登陆之后才可以使用系统中提供的功能,同时在用户登陆之后会自动判断用户的身份,渲染菜单。

2.3项目预览

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上,这是系统的登陆页面,为了不显得单调,这里使用了渐变的方式渲染背景,同时在页面中间放了一个表单,用户可以在这里输入自己的登陆信息。

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上,这是系统的首页,在这里主要是展示一些系统的基础信息,包含开发的一些描述内容。

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上,这是系统的数据展示界面,这里采用表格的方式将信息展示出来,同时提供了一些功能按钮,通过这些按钮可以实现对信息的编辑和处理。

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上,在涉及到数据编辑和处理的时候,我们采用弹框的方式对内容进行编辑,在弹出的窗口中会呈现具体编辑数据的表单。

3.系统设计

3.1角色分析

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

通过之前的分析,我们已经确定了超市管理系统的功能,这里我们从用户的角度再次来分析一下,这里准备了一张用例图,其中将管理员、采购员、销售员可以在系统中进行的操作展示了一下,通过观察可以发现管理员可以做的事情是最多的,他可以进行所有的操作,而采购员和销售员则仅可以进行采购和销售工作。
结合之前的内容和这里的用例图,到这里为止,本套系统要实现的功能应该已经十分明确了,同时对于系统中的用户也有了一个比较清晰的认识。

3.2开发工具介绍
本次超市管理系统开发主要是在 Windows 系统下进行,采用支持跨平台的 Java 语言开发完成,所以项目开发完成之后,可以运行在任意开发环境下。本次开发我们用到的工具到的工具包括PyCharm、MySQL、Vision,下边我们对他们进行简单的介绍。
PyCharm,这是一款优秀的Python代码编辑器,和当下流行的IDEA编辑器出自同一家公司,这款编辑器不仅针对常见的代码高亮、智能补全等提供相关支持,同时对于Django等开发还提供相应的支持,可以大大提示开发效率
MySQL,一种项目开发中常用的关系型数据库,因为体积小、开源、免费、简单易学、安装简单等特点,深受开发人员的喜爱,是大多数互联网公司的首选,我们将系统中的数据统一存储到这个数据库中,然后借助程序将这些数据读取出来,显示在页面上。
Vision,Office 办公组件之一,安装之后,可以用来绘制相应的图形,帮助我们更好的理解系统的情况,建立对系统清晰的认识,是开发中最常使用的建模工具。

3.3开发技术介绍
Python语言功能强大,可以运用在诸多方面,其中在Web开发方向也有一系列十分成功的应用,同时为了方便开发,提升开发效率出现了一系列的开发框架,其中 Django 就是一个典型的重量级选手,它帮助我们解决了开发中很多问题,比如模板、数据处理等等,这些使得我们只需要使用 Django 就可以完成大多数的开发任务。

3.4项目结构
对于软件开发来说,一方面编程语言需要按照特定的结构对项目代码进行解析,另一方面,我们希望自己编写的代码是可读性良好,并且拥有很好的可维护性,要满足这些需要,对项目结构进行规划是进行开发之前必须准备的事情。

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上所示,这是我们超市管理系统的项目结构示意图,在这里我们对项目中涉及到的 Java代码、页面代码进行了详细的划分,这样可以将相同功能的代码放到统一的文件夹中,之后如果需要可以很快的找到对应的文件。

4.数据库设计

4.1数据库分析
通过之前的分析,我们对于超市管理系统有了一个比较清晰的认识,了解了系统中需要包含的功能和要求,为了使系统的数据可以正常的存取,在这里,我们对数据库的情况进行简单的分析。

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上,这些是超市中运营相关的一些基础信息,管理员会提前录入会员等级和商品分类信息,之后在录入商品信息、会员信息的时候就可以选择了。

(篇幅有限,其余详见下载)

4.2数据库概念设计

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

这是我们使用 Vision 绘制的超市管理系统数据模型ER图,通过这张ER图,我们可以清晰的看到系统包括了系统用户、商品分类、商品信息这样一些实体,同时还可以看到每个实体包括的属性,这样我们对数据库的情况就有了一个大概的认识。

4.3表结构说明
通过之前的分析,我们确定了数据库的基本情况,然后借助相应的SQL语句完成了系统的创建工作,为了方便之后的理解,这里对数据库中表的结构做相关的介绍。
(1)系统用户表,用来存储系统用户信息,其中包括了用户账号、用户账号等

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

(2)商品类型表,用来存储商品类型信息,其中包括了类型名称、记录时间等

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

(篇幅有限,其余完整详见下载)

4.4数据表关系
为了方标了解数据库的具体情况,我们在这里绘制了一张数据库关系展示图,在这张图中详细展示了每个数据表以及它所包含的内容,同时把数据表之间的关系详细的罗列出来,对于了解数据表有极好的意义。

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

5.系统通用模块

5.1系统登录实现

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上所示,这是我们超市管理系统登录的页面,当用户访问指定的登录地址时,可以看到这样一个页面,在这里正确的输入用户的登录凭证信息,经过系统判断之后,决定用户是否可以进入到系统中。

<div class="login-container">
    <div class="login-body">
        <div class="login-title">
            登录
        </div>
        <div class="login-form">
            <form name="loginForm" action="" class="fater-form">
                <div class="fater-form-block">
                    <input type="text" name="userName" placeholder="请输入登录账号"/>
                </div>
                <div class="fater-form-block">
                    <input type="password" name="passWord" placeholder="请输入登录密码"/>
                </div>
                <div class="fater-form-block">
                    <button type="button" id="loginFormBtn" class="fater-btn fater-btn-primary fater-btn-block">
                        登录
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

这是我们登录页面具体的HTML代码,在这里主要是提供了一个表单,需要用户输入自己的用户名和密码,点击其中的登录按钮之后,就可以向服务器发送一个登录请求了。

def login(request):

    userName = request.POST.get('userName')
    passWord = request.POST.get('passWord')

    user = models.Users.objects.filter(userName=userName)

    if (user.exists()):

        user = user.first()
        if user.passWord == passWord:
            login_user = {
                'id': user.id,
                'userName': user.userName,
                'passWord': user.passWord,
                'name': user.name,
                'age': user.age,
                'gender': user.gender,
                'type': user.type,
            }
            request.session["user"] = login_user

            return SysView.success()
        else:
            return SysView.warn('用户密码输入错误')
    else:
        return SysView.warn('用户名输入错误')

当用户点击登录按钮将填写的用户名和密码信息发送到服务器之后,在服务端会经过上述这段代码的处理,首先我们通过输入的用户名进行查找用户信息,然后再通过查找到的用户进行比对密码,中间任何一个步骤出现异常,都不会正常登录。

(篇幅有限,其余完整下载)

6.用户管理模块

6.1用户信息展示

基于Python+Django+MySQL的超市管理系统课程设计-创享日记

如上所示,这是系统用户信息展示功能提供的页面,我们以表格的形式提供了数据分页显示的需求,同时在页面中还提供了进行数据编辑的功能,这里我们对实现它的具体过程进行详细的介绍。

<div class="fater-layout-body">
    <div class="fater-panel">
        <div class="fater-pannel-title">
            数据查询
        </div>
        <div class="fater-pannel-body">
            <div class="fater-form-inline">
                <input type="text" name="para1" placeholder="请输入用户账号……"/>
            </div>
            <div class="fater-form-inline">
                <input type="text" name="para2" placeholder="请输入用户姓名……"/>
            </div>
            <div class="fater-form-inline">
                <input type="text" name="para3" placeholder="请输入联系电话……"/>
            </div>
            <div class="fater-form-inline">
                <button type="button" class="fater-btn fater-btn-form-qry">
                    <span class="fa fa-search"></span>
                </button>
            </div>
            <div class="clear"></div>
        </div>
    </div>

    <div class="fater-panel">
        <div class="fater-pannel-title">
            <button event="add" type="button" class="fater-btn fater-btn-primary">
                <span style="color: #FFFFFF;" class="fa fa-plus"></span>
            </button>
        </div>
        <div class="fater-pannel-body">
            <div id="tableShow"></div>
        </div>
    </div>
</div>

如上所示,这是我们为了实现 用户信息展示页面而提供的前端主要实现代码,在这里我们通过循环的方式将后台获取的数据显示到页面上,这样大家就看到了系统存储的 用户信息数据。

def getPageInfo(request):

    pageIndex = request.GET.get('pageIndex', 1)
    pageSize = request.GET.get('pageSize', 10)
    userName = request.GET.get('userName')
    name = request.GET.get('name')
    phone = request.GET.get('phone')

    qruery = Q();

    if BaseView.isExit(userName):
        qruery = qruery & Q(userName__contains = userName)

    if BaseView.isExit(name):
        qruery = qruery & Q(name__contains = name)

    if BaseView.isExit(phone):
        qruery = qruery & Q(phone__contains = phone)

    data = models.Users.objects.filter(qruery)

    paginator = Paginator(data, pageSize)

    resl = []
    for item in list(paginator.page(pageIndex)):
        temp = {
            'id': item.id,
            'userName': item.userName,
            'passWord': item.passWord,
            'name': item.name,
            'age': item.age,
            'gender': item.gender,
            'phone': item.phone,
            'address': item.address,
            'type': item.type,
        }
        resl.append(temp)

    temp = BaseView.parasePage(pageIndex, pageSize,
                               paginator.page(pageIndex).paginator.num_pages,
                               paginator.count, resl)

    return BaseView.successData(temp)

(篇幅有限,其余完整及其他模块详见下载)

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容