django学生闲置物品置换平台-计算机毕业设计源码83938

学生闲置物品置换平台的设计与实现

摘要

在现今时代,随着物质生活的日益丰富,学生们手中往往积累了许多不再使用但仍然具有价值的闲置物品。这些物品可能因为各种原因,如更新换代、搬家、毕业等,而不再被需要。然而,由于缺乏有效的流通渠道,这些物品往往被闲置,造成了资源的浪费。同时,也有许多学生因为预算有限,需要寻找物美价廉的物品来满足自身需求。因此,建立一个能够连接卖家和买家的闲置物品置换平台,不仅可以有效地解决资源浪费问题,还能为广大学生提供一个便捷的购物场所。

基于上述背景,我们决定设计和实现一个学生闲置物品置换平台。该平台旨在为学生们提供一个安全、便捷、高效的物品置换环境,让他们能够轻松地发布自己的闲置物品信息,寻找心仪的物品,并与其他学生进行物品置换。

在设计和实现过程中,我们将充分考虑学生的实际需求和使用习惯。我们将采用Django框架作为后端开发的基础,利用其强大的功能和灵活的扩展性,构建出一个稳定、安全的系统。同时,我们也将注重用户体验和界面设计,力求打造一个简洁、易用、美观的平台界面,让用户能够轻松地完成物品置换操作。

总之,Django学生闲置物品置换平台的设计与实现,旨在解决学生闲置物品流通不畅和资源浪费的问题,为学生们提供一个便捷、高效的物品置换环境。通过该平台的建设,我们期望能够推动校园内的物品循环利用,促进资源的节约和环保意识的提升。

关键词:Web;Django技术;学生闲置物品置换平台

Design and Implementation of a Student Idle Item Exchange Platform

ABSTRACT

In today's era, with the increasing richness of material life, students often accumulate many unused but still valuable idle items in their hands. These items may no longer be needed due to various reasons, such as updates, moving, graduation, etc. However, due to the lack of effective circulation channels, these items are often idle, resulting in waste of resources. At the same time, many students, due to limited budgets, need to find cost-effective items to meet their own needs. Therefore, establishing a platform for exchanging idle items that can connect sellers and buyers can not only effectively solve the problem of resource waste, but also provide a convenient shopping place for students.

Based on the above background, we have decided to design and implement a student idle item replacement platform. This platform aims to provide students with a safe, convenient, and efficient environment for exchanging items, allowing them to easily post information on their idle items, search for desired items, and exchange items with other students.

In the design and implementation process, we will fully consider the actual needs and usage habits of students. We will use the Django framework as the foundation for backend development, leveraging its powerful functionality and flexible scalability to build a stable and secure system. At the same time, we will also focus on user experience and interface design, striving to create a simple, user-friendly, and beautiful platform interface that allows users to easily complete item replacement operations.

In summary, the design and implementation of the Django student idle item exchange platform aims to solve the problems of poor circulation and resource waste of student idle items, and provide students with a convenient and efficient environment for item exchange. Through the construction of this platform, we hope to promote the recycling of goods on campus, promote resource conservation, and enhance environmental awareness.

Keywords:Web; Django technology; Student Idle Item Exchange Platform

目  录

1 绪论

1.1开发背景与意义

1.2国内外研究现状

1.3论文组成结构

2开发工具及相关技术介绍

2.1开发技术说明

2.2开发工具

2.3开发技术

2.3.1MVVM模式介绍

2.3.2Django框架

2.3.3Vue.js 主要功能

3系统分析

3.1 系统可行性分析

3.1.1技术可行性

3.1.2经济可行性

3.1.3操作可行性

3.2 系统需求分析

3.3系统用例分析

3.4系统流程分析

3.4.1操作流程

3.4.2添加信息流程

3.4.3删除信息流程

4系统设计

4.1系统设计的原理

4.2系统功能设计

4.3数据库设计

4.3.1概念模型设计

4.3.2逻辑结构设计

5系统实现

5.1普通用户功能实现

5.1.1登录界面

5.1.2注册账户界面

5.1.3密码修改界面

5.1.4新闻资讯界面

5.1.5我的购物车界面

5.1.6收货地址界面

5.2商家用户功能实现

5.2.1用户咨询管理界面

5.2.2二手商城界面

5.3管理员功能实现

5.3.1管理员登录界面

5.3.2系统用户管理界面

5.3.3轮播图管理界面

5.3.4 通知公告管理界面

5.3.5资源管理界面

6系统测试

6.1测试目的

6.2系统测试用例

6.3 系统测试结果

7结论

参考文献

致 谢

1 绪论

1.1开发背景与意义

在当今社会,随着生活节奏的加快和消费水平的提高,学生们往往拥有许多不再使用但仍然具有价值的闲置物品。这些物品可能因为更新换代、搬家、毕业等原因而被闲置,导致了资源的浪费。同时,也有许多学生因为预算有限或特定需求,需要寻找物美价廉的物品。因此,学生闲置物品置换平台的开发背景应运而生,旨在解决这一资源浪费问题,并为学生们提供一个便捷、高效的物品置换环境。

该平台的开发具有深远的意义。它促进了资源的循环利用,减少了浪费。通过平台,学生们可以将自己的闲置物品转让给其他有需求的学生,使物品继续发挥价值,实现了资源的有效利用。其次,平台为学生们提供了一个交流与互动的机会。在置换物品的过程中,学生们可以结识更多志同道合的朋友,拓展自己的社交圈,增强彼此之间的联系与沟通。此外,参与物品置换也有助于培养学生的环保意识,使他们更加关注资源的节约和环境的保护。

综上所述,学生闲置物品置换平台的设计与实现具有重要的开发背景和意义。它不仅解决了资源浪费问题,促进了资源的循环利用,还为学生们提供了一个交流与互动的平台,培养了他们的环保意识。通过该平台的建设,我们期望能够推动校园内的物品循环利用,促进资源的节约和环保意识的提升,为学生们创造更加便捷、高效、环保的购物体验。

1.2国内外研究现状

在国内,随着共享经济的兴起和环保理念的深入人心,越来越多的学者和企业开始关注和研究二手交易市场,特别是针对大学生的闲置物品交易平台。这些平台致力于帮助大学生实现资源的再利用,减少浪费。然而,尽管这些平台在功能、用户体验和安全性等方面已经取得了一定的进步,但仍存在许多挑战和待提升之处。为了应对这些挑战,国内的研究者正在积极探索利用先进的技术手段,如JAVA、Springboot等,来提升平台的性能和稳定性。

在国外,大学生闲置物品交易平台的发展已经相对成熟。一些知名的平台,如Depop、eBay等,不仅提供了二手交易服务,还融入了社交元素,为用户提供了更加丰富的体验。这些平台在技术上多采用先进的架构设计和算法优化,以确保系统的稳定性和推荐精度。此外,国外的研究者还在不断探索新的技术和方法,如基于人工智能的推荐系统、区块链技术在二手交易中的应用等,以进一步推动二手交易市场的创新和发展。

综上所述,学生闲置物品置换平台在国内外都受到了一定的关注和研究。尽管国内平台在功能和用户体验方面仍有待提升,但随着技术的不断进步和创新,我们有理由相信,这一领域将会迎来更加广阔的发展前景。

1.3论文组成结构

第一章是绪论,本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。

第二章研究了学生闲置物品置换平台的所采用的开发技术和开发工具。

第三章是系统分析部分,包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。

第四章是系统设计部分,本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。

第五章是系统的具体实现,介绍系统的各个模块的具体实现。

第六章在前几章的基础上对系统进行测试和运行。

最后对系统进行了认真的总结,以此对未来有一个新的展望。

2开发工具及相关技术介绍

2.1开发技术说明

本系统前端部分基于MVVM模式进行开发,采用B/S模式后端部分基于python的Django框架进行开发。

前端部分前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示

后端部分采用Django作为开发框架,同时集成Redis等相关技术。

2.2操作系统

Windows10和Windows以后的版本关于Windows10,微软宣布它将以比以前更快的节奏更新Windows,将不会有官方的“Windows11”;相反,WindowsUpdate(或另一个服务模型)会将现有的Windows10更新为新版本。在编写此书时,已经有两个这样的更新发生在2015年11月(也称为版本1511,指服务年和月份)和2016年7月(版本1607,也因为周年更新的营销名称所知)。

Windows10和“一个内核”多年来,几种不同类型的Windows已经发展起来。除了在PC上运行的主流Windows之外,还有Xbox360游戏控制台,它运行一个分叉Windows2000。WindowsPhone7基于WindowsCE(微软的实时操作系统)运行的一个变体。维护和扩展所有这些代码库显然是困难的。因此,微软决定将内核和基础平台支持的二进制文件聚合为一个。这开始于Windows8和Windows电话8,其中共享内核(Windows8.1和Windows电话8.1具有聚合的Windows运行时API)。使用Windows10,融合就完成了,这个共享平台被称为Onecore,它运行在PC、电话、XboxOne游戏控制台、全息屏和物联网(IoT)设备(如树莓Pi2)上。

2.2开发工具

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

MySQL是一个关系型数据库管理系统,它的范围包括了膝上型计算机、台式机、超市服务器。20世纪,最初的MySQL是由Sybase专门为UNIX系统开发的,后来微软将它移植到了WindowsNT系统上。从1994年开始,微软发布独立于Sybase开发的MySQL版本,而Sybase在20世纪90年代后期,就已经停止使用MySQL这个名称。

MySQL提供MySQL多个拷贝之间以及其他数据库系统的复制服务。其中的分析服务是属于系统的一个完整部分,包括了:联机分析处理(OLAP)和数据挖掘工具。MySQL提供了一个大的图形化工具集和向导,引导数据库管理员执行各种任务,例如建立定期备份、在服务器之间复制数据,以及调整数据库性能。

2.3开发技术

2.3.1MVVM模式介绍

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频视频3D动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

2.3.2Django框架

Django是一个由Python编写的具有完整架站能力的开源Web框架。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。

Django本身基于MVC模型,即Model(模型)+View(视图)+ Controller(控制器)设计模式,因此天然具有MVC的出色基因:开发快捷、部署方便、可重用性高、维护成本低等。Python加Django是快速开发、设计、部署网站的最佳组合。

Django具有以下特点:

能完善、要素齐全:该有的、可以没有的都有,常用的、不常用的工具都用。Django提供了大量的特性和工具,无须你自己定义、组合、增删及修改。

完善的文档:经过十多年的发展和完善,Django有广泛的实践经验和完善的在线文档(可惜大多数为英文)。开发者遇到问题时可以搜索在线文档寻求解决方案。

强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。

灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。

丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签[14]。

2.3.3Vue.js 主要功能

Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。

3系统分析

3.1 系统可行性分析

3.1.1技术可行性

学生闲置物品置换平台具有显著的技术可行性。Django作为成熟、稳定的Web开发框架,提供了丰富的功能和灵活的扩展性,能够支撑复杂的数据处理、算法实现和用户交互需求。Django的社区支持广泛,拥有丰富的资源和文档,为系统的开发和维护提供了有力保障。因此,从技术角度来看,利用Django实现学生闲置物品置换平台是完全可行的。

3.1.2经济可行性

在学生闲置物品置换平台开发之前所做的市场调研及其他的相关的系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于学生闲置物品置换平台的开发在经济上是完全可行的,没有任何费用支出的。

使用比较成熟的技术,系统是基于django的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。

3.1.3操作可行性 

可操作性主要是对学生闲置物品置换平台设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、普通用户、商家用户这三个用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。

3.2 系统需求分析

在着手设计和实现学生闲置物品置换平台之前,我们首先要深入进行需求分析和市场调研。这一步骤是为了全面理解学生对于闲置物品置换的需求和期望,确保平台能够满足他们的期望并提供一个便捷、高效的置换环境。

明确学生需求:我们将通过问卷调查、面对面访谈、线上论坛讨论等多种方式,深入了解学生的日常生活习惯、物品使用频率、物品更新换代的周期以及他们在闲置物品处理上遇到的主要问题和需求。同时,我们也会关注学生对于平台功能、界面设计、操作流程等方面的期望和建议。

平台性能与界面设计:为了确保学生能够流畅地使用平台,我们要求平台必须具备良好的性能和稳定性。在界面设计上,我们将追求简洁、直观,确保学生能够快速上手并轻松完成物品置换操作。

业务流程与数据处理:我们将仔细分析学生闲置物品置换的业务流程,确保平台能够无缝对接学生的日常操作习惯,并提供简单明了的操作流程。在数据处理方面,我们将重视数据的安全性和隐私保护,确保学生的个人信息和置换记录得到妥善保管。

用户体验与反馈机制:学生闲置物品置换平台需要不断地优化和改进,以满足学生不断变化的需求。因此,我们将为平台建立用户反馈机制,鼓励学生提供宝贵的意见和建议,以便我们及时调整平台功能和优化用户体验。

综上所述,学生闲置物品置换平台的设计与实现旨在通过技术手段解决学生在闲置物品处理上的实际问题,提供一个便捷、高效的置换环境。我们期待这一平台能够帮助学生更好地管理和利用自己的物品,减少浪费并促进资源的循环利用。同时,我们也希望通过不断优化和改进平台,为学生带来更加优质的使用体验。

3.3系统用例分析

系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本学生闲置物品置换平台的完整UML用例图分别是图3-1、图3-2和图3-3。

图3-1 学生闲置物品置换平台普通用户角色用例图

图3-2 学生闲置物品置换平台商家用户角色用

图3-3 学生闲置物品置换平台管理员角色用

3.4系统流程分析

3.4.1操作流程

系统登录流程图,如图所示:

图3-4登录流程图

3.4.2添加信息流程

添加信息流程图,如图所示:

图3-5添加信息流程图

3.4.3删除信息流程

删除信息流程图,如图所示:

图3-6删除信息流程图

4系统设计

4.1系统设计的原理

系统设计原理包括:

  1. 模块化。模块化就是把整个程序划分为多个模块,每个模块有自己的名字并可以被独立访问。所有模块的功能集合起来就可以满足用户需求。
  2. 抽象。抽象是暂时忽略软件的细节,集中精力将软件的本质特征提取出来。
  3. 逐步求精。总体设计需要先解决主要问题,再将问题一步步细化。
  4. 局部化和信息隐藏。不同模块之间,信息相互不能访问,是不能访问的;并且应该在相近的物理地址上放置关系较密切的软件元素。
  5. 模块独立。模块之间应该遵循高内聚,低耦合的原则。

4.2系统功能设计

一旦您访问了这款应用,您需要完成一项重大的任务:通过认证,获得相应的权限。一旦您完成了认证,您将可以访问到一些关于您的服务,包括:系统用户、商家店铺管理、用户咨询管理、系统管理、通知公告管理、资源管理(新闻资讯、资讯分类)、商城管理等。这个界面非常清晰明了,通过指引您就能轻松地完成各种任务。

系统的功能结构图如下所示。

图4-1系统功能结构图

4.3数据库设计

数据库设计(DatabaseDesign)是指对一个给定的环境,构造良好的数据库模式,建立数据库系统,使之能够最有效地存储数据,满足各类用户的需求即处理要求和信息要求。在数据库应用范围内,经常把使用数据库的系统称为数据库的应用系统。

4.3.1概念模型设计

E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。它有两个优点,即接近于人的思维,容易理解;与计算机无关,用户容易接受。

系统的主要实体间关系E-R图如下图所示:

图4-2系统E-R图

实体间可建立某种联系,大致可分为三种:(1)实体间一对一联系,这种关系可以独立也可与其他合并;(2)实体间是一对多联系,实体与另一个n端实体发生联系;(3)实体间为多对多联系,两个实体间存在某种关系。每个实体上码所具有的属性就是关系属性,实体码的组合就是关系码。

4.3.2逻辑结构设计

根据E-R模型,学生闲置物品置换平台建立了以下逻辑数据结构,下面是各数据表的详细说明。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表address (收货地址:)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

address_id

int

10

0

N

Y

收货地址:

2

name

varchar

32

0

Y

N

姓名:

3

phone

varchar

13

0

Y

N

手机:

4

postcode

varchar

8

0

Y

N

邮编:

5

address

varchar

255

0

N

N

地址:

6

user_id

mediumint

8

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

default

bit

1

0

N

N

0

默认判断

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

cart_id

int

10

0

N

Y

购物车ID:

2

title

varchar

64

0

Y

N

标题:

3

img

varchar

255

0

N

N

0

图片:

4

user_id

int

10

0

N

N

0

用户ID:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

state

int

10

0

N

N

0

状态:使用中,已失效

8

price

double

9

2

N

N

0.00

单价:

9

price_ago

double

9

2

N

N

0.00

原价:

10

price_count

double

11

2

N

N

0.00

总价:

11

num

int

10

0

N

N

1

数量:

12

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

13

type

varchar

64

0

N

N

未分类

商品分类:

14

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

标题:[0,125]用于产品和html的<title>标签中

3

img

text

65535

0

Y

N

封面图:用于显示于产品列表页

4

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

5

price_ago

double

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

点击量:[0,1000000000]访问这篇产品的人次

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表goods_type (商品类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

int

10

0

N

Y

商品分类ID:

2

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

3

name

varchar

255

0

Y

N

商品名称:

4

desc

varchar

255

0

Y

N

描述:

5

icon

varchar

255

0

Y

N

图标:

6

source_table

varchar

255

0

Y

N

来源表:

7

source_field

varchar

255

0

Y

N

来源字段:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表logistics_delivery (物流配送)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_delivery_id

int

10

0

N

Y

物流配送ID

2

order_number

varchar

64

0

Y

N

订单号

3

product_name

varchar

64

0

Y

N

商品名称

4

purchase_quantity

varchar

64

0

Y

N

购买数量

5

total_transaction_amount

double

11

2

Y

N

0.00

交易总额

6

the_date_of_issuance

date

10

0

Y

N

发货日期

7

delivery_number

varchar

30

0

Y

N

配送订单

8

ordinary_users

int

10

0

Y

N

0

普通用户

9

shipping_address

varchar

64

0

Y

N

收货地址

10

delivery_status

varchar

64

0

Y

N

配送状态

11

signing_status

varchar

64

0

Y

N

签收状态

12

recommend

int

10

0

N

N

0

智能推荐

13

contact_name

varchar

255

0

Y

N

联系人名字

14

merchant_id

int

10

0

Y

N

商家id

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表merchant_stores (商家店铺)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

merchant_stores_id

int

10

0

N

Y

商家店铺ID

2

store_name

varchar

64

0

Y

N

店铺名称

3

store_address

varchar

64

0

Y

N

店铺地址

4

merchant_users

int

10

0

Y

N

0

商家用户

5

merchant_name

varchar

64

0

Y

N

商家姓名

6

store_image

varchar

255

0

Y

N

店铺图片

7

store_introduction

text

65535

0

Y

N

店铺简介

8

hits

int

10

0

N

N

0

点击数

9

praise_len

int

10

0

N

N

0

点赞数

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表merchant_users (商家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

merchant_users_id

int

10

0

N

Y

商家用户ID

2

store_name

varchar

64

0

Y

N

店铺名称

3

store_address

varchar

64

0

Y

N

店铺地址

4

store_phone

varchar

64

0

Y

N

店铺电话

5

merchant_name

varchar

64

0

Y

N

商家姓名

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

32

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

22

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

0

Y

N

订单备注

24

delivery_state

varchar

16

0

Y

N

未配送

发货状态:未配送,已配送

25

vip_discount

double

11

2

Y

N

0.00

折扣

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表second_hand_shopping_mall (二手商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

second_hand_shopping_mall_id

int

10

0

N

Y

二手商城ID

2

merchant_users

int

10

0

Y

N

0

商家用户

3

store_name

varchar

64

0

Y

N

店铺名称

4

store_address

varchar

64

0

Y

N

店铺地址

5

new_and_old_degree

varchar

64

0

Y

N

新旧程度

6

hits

int

10

0

N

N

0

点击数

7

praise_len

int

10

0

N

N

0

点赞数

8

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

9

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

10

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

11

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

12

cart_price

double

8

2

N

N

0.00

卖价:[1]

13

cart_inventory

int

10

0

N

N

0

商品库存

14

cart_type

varchar

64

0

N

N

未分类

商品分类:

15

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

16

cart_img_1

text

65535

0

Y

N

主图1:

17

cart_img_2

text

65535

0

Y

N

主图2:

18

cart_img_3

text

65535

0

Y

N

主图3:

19

cart_img_4

text

65535

0

Y

N

主图4:

20

cart_img_5

text

65535

0

Y

N

主图5:

21

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_consultation (用户咨询)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_consultation_id

int

10

0

N

Y

用户咨询ID

2

store_name

varchar

64

0

Y

N

店铺名称

3

store_address

varchar

64

0

Y

N

店铺地址

4

merchant_users

int

10

0

Y

N

0

商家用户

5

regular_users

int

10

0

Y

N

0

普通用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

consultation_information

text

65535

0

Y

N

咨询信息

8

merchant_response

text

65535

0

Y

N

商家回复

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5系统实现

5.1普通用户功能实现

5.1.1登录界面

登录模块,用户、管理员可以通过登录进入该系统,如果输入正确用户名和密码,则可以进入该系统。用户登录界面如下图所示。

图5-1登录模块界面图

 登录关键代码如下:

def Login(self, ctx):

        print("===================登录=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "账户不存在",

            }

        }

        body = ctx.body

        password = md5hash(body["password"]) or ""

        obj = service_select("user").Get_obj(

            {"username": body["username"]}, {"like": False}

        )

        if obj:

            user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})

            if user_group and user_group['source_table'] != '':

                user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},                                                                       {"like": False})

                if user_obj['examine_state'] == '未通过':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未通过审核",

                        }

                    }

                    return ret

                if user_obj['examine_state'] == '未审核':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未审核",

                        }

                    }

                    return ret

            if obj["state"] == 1:

                if obj["password"] == password:

                    timeout = timezone.now()

                    timestamp = int(time.mktime(timeout.timetuple())) * 1000

                    token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))

                    ctx.request.session[token] = obj["user_id"]

                    service_select("access_token").Add(

                        {"token": token, "user_id": obj["user_id"]}

                    )

                    obj["token"] = token

                    ret = {

                        "result": {"obj": obj}

                    }

                else:

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "密码错误",

                        }

                    }

            else:

                ret = {

                    "error": {

                        "code": 70000,

                        "message": "用户账户不可用,请联系管理员",

                    }

                }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

5.1.2注册账户界面

如果某个人员进入该系统,则注册该用户的信息,如果注册成功,就可以进入该系统,显示的结果如下。注册用户界面如下图所示。

图5-2注册用户界面图

注册关键代码如下

    def Register(self, ctx):

        print("===================注册=====================")

        userService = service_select("user")

        body = ctx.body

        if "username" not in body and body["username"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名不能为空",

                }

            }, ensure_ascii=False))

        if "user_group" not in body and body["user_group"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户组不能为空",

                }

            }, ensure_ascii=False))

        if "password" not in body and body["password"] == '':

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "密码不能为空",

                }

            }, ensure_ascii=False))

        post_param = body

        post_param['nickname'] = body["nickname"] or ""

        post_param['password'] = md5hash(body["password"])

        obj = userService.Get_obj({"username": post_param['username']}, {"like": False})

        if obj:

            return ctx.response(json.dumps({

                "error": {

                    "code": 70000,

                    "message": "用户名已存在",

                }

            }, ensure_ascii=False))

        ret = {

            "error": {

                "code": 70000,

                "message": "注册失败",

            }

        }

        bl = userService.Add(post_param)

        if bl:

            ret = {

                "result": {

                    "bl": True,

                    "message": "注册成功"

                }

            }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

5.1.3密码修改界面

用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图所示。

图5-3密码修改界面图

找回密码关健代码如下:

 def Forget_password(self, ctx):

        print("===================修改密码=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "用户信息不能没有"

            }

        }

        body = ctx.body

        if not body["code"]:

            return {

                "error": {

                    "code": 70000,

                    "message": "验证码不存在或者错误"

                }

            }

        obj = service_select("user").Get_obj(

            {"username": body["username"]}, {"like": False}

        )

        if not obj:

            return {

                "error": {

                    "code": 70000,

                    "message": "用户名不存在或者错误"

                }

            }

        password = md5hash(body["password"])

        if not password:

            return {

                "error": {

                    "code": 70000,

                    "message": "密码不存在或者错误"

                }

            }

        bl = service_select("user").Set({"user_id": obj["user_id"]}, {"password": password})

        if bl:

            ret = {"result": {"bl": True, "message": "修改成功"}}

        else:

            ret = {

                "error": {

                    "code": 70000,

                    "message": "修改失败",

                }

            }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

修改密码代码如下:

 def Change_password(self, ctx):

        print("===================修改密码=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "账号未登录",

            }

        }

        request = ctx.request

        headers = request.headers

        if ("x-auth-token" in headers) and headers["x-auth-token"]:

            token = headers["x-auth-token"]

            user_id = tokenGetUserId(token, request)

            userService = service_select("user")

            body = ctx.body

            password = md5hash(body["o_password"])

            obj = userService.Get_obj({"user_id": user_id, "password": password}, {"like": False})

            if obj:

                password = md5hash(body["password"])

                bl = userService.Set({"user_id": user_id}, {"password": password})

                if bl:

                    ret = {"result": {"bl": True, "message": "修改成功"}}

                else:

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "修改失败",

                        }

                    }

            else:

                ret = {

                    "error": {

                        "code": 70000,

                        "message": "密码错误",

                    }

                }

        else:

            ret = {

                "error": {

                    "code": 70000,

                    "message": "账户未登录",

                }

            }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

5.1.4新闻资讯界面

当用户点击“新闻资讯”这一菜单按钮,会显示管理员在后台发布的所有的新闻信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,新闻资讯界面如下图所示。

图5-4新闻资讯页面图

5.1.5我的购物车界面

当用户浏览到心仪的商品时,可以将商品添加至购物车内,查看购物车列表,修改或者删除购物车。我的购物车界面如下图所示。

图5-5我的购物车界面图

5.1.6收货地址界面

用户输入收货人、手机号及详细地址可以对收货地址进行添加。我的地址界面如下图所示。

图5-6收货地址界面图

5.2商家用户功能实现

5.2.1用户咨询管理界面

商家用户点击“用户咨询管理”这一菜单按钮,提供管理用户咨询的功能,包括查看、回复、删除咨询信息等操作,方便商家与用户进行沟通和交流。用户咨询管理界面如下图所示。

图5-7用户咨询管理页面图

5.2.2二手商城界面

商家用户点击“二手商城”这一菜单按钮,允许商家管理自己店铺内的商品信息,包括添加新商品、编辑商品信息、下架商品等操作,以确保商品信息的准确性和时效性。二手商城界面如下图所示。

图5-8二手商城页面图

5.3管理员功能实现

5.3.1管理员登录界面

  管理员输入账号、密码、验证码点击“登录”按钮就会跳转到登录界面。如下图所示。

图5-9管理员登录页面图

5.3.2系统用户管理界面

管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户和商家用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如下图所示。

图5-10系统用户页面图

增删查改关键代码如下:

def Add(self, ctx):

body = ctx.body

unique = self.config.get("unique")

obj = None

if unique:

qy = {}

for i in range(len(unique)):

key = unique[i]

qy[key] = body.get(key)

obj = self.service.Get_obj(qy)

if not obj:

error = self.Add_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("add_before", ctx, None)

if error["code"]:

return {"error": error}

result = self.service.Add(body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Add_after(ctx, result)

if res:

result = res

res = self.Events("add_after", ctx, result)

if res:

result = res

return {"result": result}

else:

return {"error": {"code": 10000, "message": "已存在"}}

def Del(self, ctx):

if len(ctx.query) == 0:

errorMsg = {"code": 30000, "message": "删除条件不能为空!"}

return errorMsg

result = self.service.Del(ctx.query, self.config)

if self.service.error:

return {"error": self.service.error}

return {"result": result}

def Set(self, ctx):

error = self.Set_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("set_before", ctx, None)

if error["code"]:

return {"error": error}

query = ctx.query

if 'page' in query.keys():

del ctx.query['page']

if 'size' in query.keys():

del ctx.query['size']

if 'orderby' in query.keys():

del ctx.query['orderby']

result = self.service.Set(ctx.query, ctx.body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Set_after(ctx, result)

if res:

result = res

res = self.Events("set_after", ctx, result)

if res:

result = res

return {"result": result}

查多条数据:

def Get_list(self, ctx):

query = dict(ctx.query)

config_plus = {}

if "field" in query:

field = query.pop("field")

config_plus["field"] = field

if "page" in query:

config_plus["page"] = query.pop("page")

if "size" in query:

config_plus["size"] = query.pop("size")

if "orderby" in query:

config_plus["orderby"] = query.pop("orderby")

if "like" in query:

config_plus["like"] = query.pop("like")

if "groupby" in query:

config_plus["groupby"] = query.pop("groupby")

count = self.service.Count(query)

lst = []

if self.service.error:

return {"error": self.service.error}

elif count:

lst = self.service.Get_list(query,

obj_update(self.config, config_plus))

if self.service.error:

return {"error": self.service.error}

self.interact_list(ctx, lst)

return {"result": {"list": lst, "count": count}}

查一条数据:

def Get_obj(self, ctx):

query = dict(ctx.query)

config_plus = {}

if "field" in query:

field = query.pop("field")

config_plus["field"] = field

obj = self.service.Get_obj(query, obj_update(self.config, config_plus))

if self.service.error:

return {"error": self.service.error}

if obj:

self.interact_obj(ctx, obj)

return {"result": {"obj": obj}}

5.3.3轮播图管理界面

点击“轮播图”管理员可以插入轮播图图片、填写标题进行提交。如下图所示。

图5-11轮播图管理页面图

5.3.4 通知公告管理界面

点击“通知公告管理”这个菜单,可以查看到系统中所有添加的系统公告,支持通过标题对系统公告进行查询,添加、删除等操作。通知公告管理界面如下图所示。

图5-12通知公告管理界面图

5.3.5资源管理界面

当点击“资源管理”这一菜单的时候,会出现新闻资讯、资讯分类这两个子菜单,可以对这两个模块进行增删改查操作。新闻资讯、资讯分类界面如下图所示。

图5-13新闻资讯界面图

图5-14资讯分类界面图

6系统测试

6.1测试目的

测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。

6.2系统测试用例

系统测试包括:用户登录功能测试、新闻资讯查看测试、发布公告信息、商家店铺搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:

用户登录功能测试:

表6-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

新闻资讯查看功能测试:

表6-2 新闻资讯查看功能测试表

用例名称

新闻资讯查看

目的

测试新闻资讯查看功能

前提

用户登录

测试流程

点击新闻资讯列表

预期结果

可以查看到所有新闻资讯

实际结果

实际结果与预期结果一致

管理员发布公告信息界面测试:

表6-3 管理员发布公告信息界面测试表

用例名称

公告信息发布测试用例

目的

测试公告信息发布功能

前提

用户正常登录情况下

测试流程

1)点击公告信息管理,然后点击发布添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的公告信息 

实际结果

实际结果与预期结果一致

商家店铺搜索功能测试:

表6-4商家店铺搜索功能测试表

用例名称

商家店铺搜索测试

目的

测试商家店铺搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的商家店铺

实际结果

实际结果与预期结果一致

密码修改功能测试:

表6-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 系统测试结果

经过对学生闲置物品置换平台的测试,我们已经完成了5大模块的检测,包括用户登录功能测试、新闻资讯查看测试、发布公告信息、商家店铺搜索、密码修改功能测试,这些功能为后续的推广运营提供了强有力的技术支持。


7结论

通过学生闲置物品置换平台的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。

目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在云平台服务器中。

本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。

系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。

参考文献

[1]张婷燕,王剑宇,田家远.Python程序设计教学模式改革实践探索[J].电脑知识与技术,2024,20(06):27-29+36.DOI:10.14004/j.cnki.ckt.2024.0296.

[2]Ishan R ,Prakash C ,K. P T , et al.Python-Based Open-Source Tool for Automating Seleno-Referencing of Chandrayaan-2 Hyper-Spectral Data Cubes[J].Journal of the Indian Society of Remote Sensing,2024,52(2):305-313.

[3]Souto G H ,Moradi A .Yang  Zhang’s realized volatility: Automated estimation in Python[J].Software Impacts,2024,19100613-.

[4]Jensen B ,Wang T .The Elusive Hypertrophy of the Python Heart.[J].Physiology (Bethesda, Md.),2024,39(2):0-0.

[5]Werff D V J ,Ravignani A ,Jadoul Y .thebeat: A Python package for working with rhythms and other temporal sequences.[J].Behavior research methods,2024,

[6]Maurer J V ,Siggel M ,Kosinski J .PyTME (Python Template Matching Engine): A fast, flexible, and multi-purpose template matching library for cryogenic electron microscopy data[J].SoftwareX,2024,25101636-.

[7]许舟洋,刘博宇.校园闲置物品捐赠和销售平台设计[J].现代计算机,2024,30(02):92-97.

[8]史桂红.基于uni-app的校园闲置物品回收小程序的设计与实现[J].无线互联科技,2023,20(24):71-74.

[9]许舟洋,刘博宇.促进资源循环利用的校园闲置物品捐赠和销售平台设计[J].电脑编程技巧与维护,2023,(10):3-9+39.DOI:10.16184/j.cnki.comprg.2023.10.045.

[10]张皓,闫宁,崔春雨,等.基于微服务架构的高校闲置物品交易平台[J].电脑知识与技术,2023,19(29):63-66.DOI:10.14004/j.cnki.ckt.2023.1527.

[11]周姣.基于微服务架构的高校二手物品交易系统设计与实现[J].电脑知识与技术,2023,19(22):67-70.DOI:10.14004/j.cnki.ckt.2023.1248.

[12]李爽.高校闲置物品交易系统的设计与实现[J].产业与科技论坛,2023,22(15):34-35.

[13]贾倩文.社区儿童闲置玩具共享服务设计研究[J].艺术与设计(理论),2023,2(06):96-99.DOI:10.16824/j.cnki.issn10082832.2023.06.015.

[14]刘曼璐.情感化理念下的校园闲置交易平台设计研究[D].北京建筑大学,2023.DOI:10.26943/d.cnki.gbjzc.2023.000025.

[15]刘玉茹.面向信任的闲置物品交易平台治理机制研究[D].北京邮电大学,2023.DOI:10.26969/d.cnki.gbydu.2023.003238.

[16]何流.共享经济背景下闲置物品共享平台的服务设计研究[D].景德镇陶瓷大学,2023.DOI:10.27191/d.cnki.gjdtc.2023.000101.

[17]彭嘉怡,袁楠楠,尹鲲龙,等.大学生闲置物品交易互助微信小程序设计与开发[J].中国新技术新产品,2022,(18):37-40.DOI:10.13612/j.cnki.cntp.2022.18.016.

[18]赵冰,刘星含,杨泰森,等.基于微信小程序的校园二手闲置物品交易平台的设计与实现[J].电脑知识与技术,2022,18(21):64-66.DOI:10.14004/j.cnki.ckt.2022.1254.

[19]金楷轩.交易型共享经济的运作逻辑[D].浙江师范大学,2022.DOI:10.27464/d.cnki.gzsfu.2022.000634.

[20]李涛,赵莉莉,关梦瑶,等.共享经济背景下的闲置物品共享平台分析及对策研究[J].老字号品牌营销,2022,(08):65-67.

致 谢

经历了近三个多月的动手实践及老师辛勤的指导和同学朋友热心的帮助下,本人的毕业设计学生闲置物品置换平台的基本功能也基本完成。

此次设计中,通过不断的探讨与学习使我熟悉、使我初步了解了Django相关技术。我做的是一个B/S结构的学生闲置物品置换平台,使我对做网站所需要,及运行的环境有了初步的了解,在此次设计中我翻阅了较多的书籍,在有限的时间了丰富了对学生闲置物品置换平台技术的知识也积累了少许的经验。起初对Python的初步认识,通过这次设计更进一步的了解了其工作原理,懂得了配置服务器环境,连接数据库源,在设计过程中,也学会了用Pycharm设计一个简单的页面,增强了动手的能力,激发了在此方面的兴趣。

但是由于时间、基础及缺乏实践等多方面的问题,还有诸多需要解决的问题依然存在,设计中很多方面考虑不够周全或者考虑不到。

非常感谢我的老师,我的同学,我的朋友并希望在今后的学习生活中不断陪养多方面的兴趣,不断学习进步从而能够实现独立完成。设计中存在的诸多缺点诚肯老师的原谅。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我了解你在寻找一个django计算机毕业设计的响应式企业网站设计的Python源码。首先,感谢你对DjangoPython的选择。 在开发一个响应式企业网站时,Django是一个非常强大的框架。它提供了许多功能和工具,使开发过程更加高效和简便。Django具有良好的模型-视图-控制器(MVC)架构,使代码组织清晰,易于维护和扩展。 在设计一个响应式企业网站时,我们可以使用Django的模板系统来创建动态和可重用的网页模板。这些模板可以根据不同的设备(如电脑、平板电脑、手机)自动调整,并提供良好的用户体验。我们还可以使用Django的表单和验证功能来处理用户输入和交互。 对于企业网站,通常需要与数据库交互来存储和检索数据。Django提供了一个强大的ORM(对象关系映射)工具,可以帮助我们轻松地与数据库交互。我们可以定义模型类来表示数据表,在Python代码中操作这些模型类,而无需直接编写SQL查询语句。 为了帮助你进一步学习和开发这样一个响应式企业网站,我建议你按照以下步骤进行操作: 1. 首先,确保你已经安装了PythonDjango。你可以从Python官方网站下载和安装Python,然后使用pip(Python包管理器)安装Django。 2. 创建一个新的Django项目。你可以使用Django提供的命令行工具来创建一个新的项目,并初始化一些默认文件和目录。执行以下命令: ``` django-admin startproject myproject ``` 3. 设计数据库模型。根据你的网站需求,设计并定义数据库模型类。例如,你可以创建一个名为"Company"的模型类来表示企业信息。 4. 创建视图和模板。根据设计的企业网站需求,创建对应的视图函数和模板文件。视图函数将处理用户的请求,并返回相应的网页。模板文件将用于呈现动态内容。 5. 编写URL映射规则。在Django项目的urls.py文件中定义URL映射规则,将特定的URL路径与对应的视图函数关联起来。 6. 运行开发服务器。执行以下命令来启动Django开发服务器: ``` python manage.py runserver ``` 你将能够在本地访问你的企业网站。 以上是一个简单的概述,关于Django计算机毕业设计的响应式企业网站设计的Python源码下载。为了完整的项目实现和源码下载,你可以搜索相关的Django企业网站开源项目,这些项目通常提供完整的源代码和示例。希望你能够找到适合你的项目,并顺利完成毕业设计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值