首页 > 分享 > django宠物领养系统的设计与实现 毕业设计程序源码32724

django宠物领养系统的设计与实现 毕业设计程序源码32724

宠物领养系统的研究背景源于宠物领养需求的增加和传统方式存在的问题。随着社会发展和人们生活水平的提高,越来越多的人开始关注宠物的陪伴和抚养。然而,传统的宠物领养方式存在一些不便和局限性,如信息获取困难、手续繁琐等。

首先,传统的宠物领养方式往往需要人们亲自前往宠物收容所或相关机构了解领养信息。这对于时间有限的人们来说可能不太方便,也无法及时获取到最新的宠物信息。同时,由于信息传递渠道有限,许多宠物可能无法找到合适的领养家庭。

其次,传统的宠物领养流程通常涉及繁琐的手续,包括填写纸质申请表格、面试、签署合同等。这不仅耗费了领养者和机构的时间和精力,还可能造成不必要的纸质文件存档和管理难题。

因此,设计和实现一个基于django的宠物领养系统能够解决传统方式存在的问题。该系统可以通过在线平台提供宠物信息的展示和管理,使领养者可以方便地查找符合自己需求的宠物。同时,系统可以简化领养流程,提供在线申请和处理功能,减少繁琐的手续和文件存档。通过引入现代技术手段,该系统有助于促进宠物领养的便捷性、透明性和效率,提高动物福利,满足人们对宠物伴侣的需求。

研究现状

在国内经济快速增长的时代,无数的钢铁水泥竖立在我们的生活周围。在倍感陌生的生活环境里,人们的生活节奏是如此的快。忙碌的生活虽然给我们带来了很好的物质基础,但是对于自身的精神生活要求总是无法得到满足。没时间,忙碌,孤独总是自己的标签。如何提高本身的精神上的质量正是人们懊恼的事情。然而,宠物,作为人类忠诚的朋友掀起了热潮,这就促使人们对领养宠物的热衷和热情达到了一个很高涨的地步。

在国外,领养宠物的生活方式的流行已经非常普及。比如:美国作为一个经济发展的强国,他们对于领养宠物的观念是非常牢固的。宠物已经是他们家庭的重要部分,不仅是他们的朋友而且把宠物看作其亲人一样。对比国内,动物领养热潮才刚开始的,这说明我们地区的动物领养意识只是刚刚起步的。在领养宠物起步的阶段面临着许多难题。更多的人对于宠物大多停留在购买的程度,而不是到相应的宠物收留所去领养。即使有一部分人到宠物收留所进行宠物的领养,地理隔离也是一大问题所在。如何加快领养宠物发展的步伐呢?这问题的解决正是如今电子商务与宠物领养完美结合的关键。互联网的快速发展,人们对网络的依赖,以及网络给人们带来了如此便利,快捷,全天的服务。同时,网络的虚拟空间成为80后、90后年轻人的主要活动场所,传统的生活方式逐渐被这种新的生活方式所取代,大家都会有意识的通过网络去实现自己的需求。网络也凭借着其快速、便捷、互动的优势。

研究目的和预期成果

宠物领养系统的研究目的在于解决宠物领养过程中所存在的问题,并建立一个高效、便捷和可靠的平台,以促进宠物领养的合法化和规范化。通过该系统的建立,我们希望能够管理宠物数量,遏制过度繁殖和流浪动物的问题。同时,也致力于保护动物权益,确保宠物得到妥善的照顾和永久的承诺,减少虐待和遗弃的情况发生。此外,宠物领养系统还将激励人们对宠物的社会责任感,推动社会各界关注动物福利问题。最终,我们预期通过该系统的运行,能够实现宠物领养程序的规范化,提供透明的宠物信息,整合宠物领养资源,并建设一个积极互动的宠物社区,从而为宠物爱好者们提供一个全面的宠物管理平台。

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:

用于创建模型的对象关系映射;

为最终用户设计较好的管理界面;

URL 设计;

设计者友好的模板语言;

缓存系统。

Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者。

 Python语言 

早在上个世纪90年代,Python就由吉多·范罗苏姆进行创造,自诞生之日起,Python就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Python语言是真的是一种纯面向对象的计算机语言,在Python的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Python中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Python另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Python也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Python编程语言进行后台的开发,一是鉴于标准化制定以后,Python语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Python代码的能力。

3 章  系统分析

可行性分析

为了迎合当今社会的现况,便于在市场中打开局面、占有一席之地;在大数据时代下,所有的信息化资源全部都是共享资源、为了长远性考虑,对此需要考虑如何推动整体的系统开发实现标准化。保证系统成功,所以就必须从效益、技术等上面做可行性报告研究。

操作可行性

宠物领养系统的注册与登陆页面设计简洁容易应用,可以通过最常见的页面窗口来登录页面,并利用过计算机实现登录功能,因此使用者只要平时利用过计算机都可以实现登录应用。此操作系统的研发工作环境运用了Python技术,并运用了B/S结构,这些研发工作环境都使得此系统功能更为完整,使整个设计更为个性化,使用者功能也更为简洁方便。宠物领养系统具备了易于运行、容易管理、交互性较好的优点,在实际操作上也是非常简单的。因此,宠物领养系统也可进行商业设计。

综上所述,该设备的研发符合技术、工艺和技术要求,因此其研发具有可操作性。

技术可行性

技术可行性是指所确定的科学技术或决策方法中的科学技术均未突破组织掌握或相关人员熟悉的科学技术资源的界限。在技术研究过程中,应注意全面调查系统研发过程中包含的各种关键技术问题,尽可能选择成熟技术,认真引用先进技术,关注特定的研究平台和开发人员,评估关键技术的有效性。

Python技术对于该宠物领养系统的设计和实施很是关键,基于B/S架构的和MySQL数据库管理,对于前台的应用和后台的数据库管理都是至关重要的,要想有效应用该程序,就需要保持功能全面、易懂易简单使用的特性。构建数据库管理时,需要确保数据分析信息完全、数据分析信息稳定性好、数据分析信息稳定性较高的库。在早期,人们对Python的基本重要知识点就有理解和熟悉,对MySQL数据库发生过简要的掌握、熟悉,在早期对软件工程测试,以及UML语言等基础课程发生过大致的掌握和练习,经过对上述课程练习,就能够对上述课程有相应的信息系统开发、检验和判断。

Python可以和MySQL结合起来研发一个宠物领养系统,一定是合理而且有效的。

系统功能需求

普通用户用例图如下所示。

图3.1 普通用户用例图

管理员用例图如下所示。

图3.2 管理员用例图

表3.1 公告浏览用例描述

描述项

说明

用例名称

公告查询

用例描述

用户可以查看公告的详情

参与者

用户

前置条件

使用者是普通用户类型并成功进入该系统

后置条件

浏览成功

主事件流

(1)用户可以浏览公告的模块、公告的内容

(2)用户点击公告可以对公告进行详情阅读

异常事件流

e1.报500错误

e2.数据库连接异常

表3.1 交流论坛用例描述

描述项

说明

用例名称

交流论坛

用例描述

用户可以将自己想说的话发表在交流板,其他的用户可以查看,已注册的用户可以回复

参与者

用户

前置条件

用户是注册用户并成功进入该系统

后置条件

交流添加成功且显示在交流板

主事件流

系统检查是否是普通用户

未注册的用户可以查看交流板的内容

已注册的用户的交流表单显示出来可以进行交流和回复他人的交流

异常事件流

e1.报500错误

e2.数据库连接异常

e3.交流内容不显示

表3.1 发帖用例描述

描述项

说明

用例名称

发帖

用例描述

在登录成功的条件下,用户可以发布帖子

参与者

用户

前置条件

用户登录成功并进入该系统

后置条件

发布成功

主事件流

(1)系统检查是否是普通用户类型

用户输入标题、描述、类型、图片url和内容,开始执行发布用例

(3)发布成功,进入系统的主页

异常事件流

e1.报500错误

e2.数据库连接异常

e3.数据内容太长

表3.1 个人信息管理用例描述

用例名称

管理和修改个人信息

参与者

用户

描述

用户查看、修改个人信息

前置条件

用户已登录到系统中

后置条件

事件流

(1)用户查看个人信息

(2)用户修改个人信息

补充说明

(a)用户可修改密码

(b)用户可修改个人资料,例如姓名,头像等

表3.1 评论用例描述

用例名称

评论

参与者

用户

描述

用户发表评论

前置条件

用户已登录

后置条件

评论内容不违规

事件流

(1)在评论页输入评论数据,提交评论

(2)更新并显示评论板

补充说明

(a)评论内容不能为空

表3.1 收藏用例描述

用例名称

收藏

参与者

用户

描述

用户将内容加入收藏夹

前置条件

用户已登录

后置条件

事件流

(1)在收藏页加入收藏

(2)更新并显示收藏夹

补充说明

表3.1 用户管理用例描述

描述项

说明

用例名称

用户操作

用例描述

管理员正确登录后台管理的条件下,对用户进行管理

参与者

管理员

前置条件

管理员登录成功并跳转到后台主界面

后置条件

操作成功

主事件流

管理员跳转用户管理页面,查询用户详情的信息

管理员可以删除用户信息

异常事件流

e1.报500错误

e2.数据库连接异常

表3.1 宠物秀场管理用例描述

描述项

说明

用例名称

宠物秀场操作

用例描述

管理员正确登录后台管理的条件下,对宠物秀场模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入宠物秀场管理页面,查询宠物秀场的信息

(2)管理员可以对宠物秀场进行增删除和编辑宠物秀场操作

(3)管理员新增宠物秀场,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表3.1 宠物转让管理用例描述

描述项

说明

用例名称

宠物转让操作

用例描述

管理员正确登录后台管理的条件下,对宠物转让模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入宠物转让管理页面,查询宠物转让的信息

(2)管理员可以对宠物转让进行增删除和编辑宠物转让操作

(3)管理员新增宠物转让,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表3.1 公告管理用例描述

用例名称

公告管理

参与者

管理者

描述

管理者提供新增、修改、删除、查阅等功能

前置条件

管理者成功登录系统管理者只能对已存在的公告进行修改和删除

后置条件

事件流

(1)管理者查看修改公告

(2)管理者添加公告

(3)管理者删除公告

补充说明

(a)新添加的公告不符合要求时会添加失败

(b)修改的公告不符合要求时会修改失败

表3.1 交流管理用例描述

描述项

说明

用例名称

交流操作

用例描述

管理员正确登录后台管理的条件下,交流模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入交流界面,查询交流内容信息

(2)管理员可以删除交流

异常事件流

e1.报500错误

e2.数据库连接异常

表3.1 回复管理用例描述

描述项

说明

用例名称

回复操作

用例描述

管理员正确登录后台管理的条件下,回复模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入回复管理页面,查询回复内容的信息

(2)管理员可以删除回复

异常事件流

e1.报500错误

e2.数据库连接异常

表3.1 评论管理用例描述

描述项

说明

用例名称

评论操作

用例描述

管理员正确登录后台管理的条件下,评论模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入评论管理页面,查询评论内容的信息

(2)管理员可以从用户评论中删除数据

异常事件流

e1.报500错误

e2.数据库连接异常

系统业务流程分析

管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。

用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。

宠物领养系统的业务流程如下图所示。

图3.3 系统业务流程图

4 章 系统设计

总体结构设计

层次框图是一系列由多层矩形框架组成的树,其顶部为矩形框架,表示整个数据结构,下方的长方形立方体表示独立的数据,下方的长方形表示该数据的实际数据(不能进行分割)。由于这个架构的精炼,层级方块图描述的资料结构也愈加详尽,这个模型很好地满足了需求分析的要求。首先对最上层的信息进行分类,然后在图表中的每个路径上重复地进行优化,直至完整的数据结构被确定。

这个系统由两个模块组成,一是管理员,二是普通用户,这两个部分看起来是独立的,实际上却是连接着数据库,每个模块都有自己的权限,唯一不同的,就是访问的方式不同。在调研资料的基础上,完成了各个模块的功能。在对上述功能进行分析的基础上,本系统提出了两个主要的模块,每个单元可划分为若干小单元。

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

图4.1 系统功能结构图

功能模块设计

宠物领养系统在前端设计采用多种技术交互使用达到界面简洁大方,使用Python作为系统的编译语言,对于之前的分析所产生的问题进行解决,功能模块设计后进行编码实现具体功能:

登录模块:使用者必须输入正确的账号与密码才能访问系统。

宠物转让管理模块:管理者根据选择,可以给用户发布宠物转让信息,在添加宠物转让是输入宠物类型的详细信息,添加需要上传的文件之后回到宠物转让管理界面,在修改宠物转让时修改不对的信息,也可以删除重新添加宠物转让。

领养宠物管理模块:相关权限用户可以进行领养宠物信息的查询、修改、删除操作,也可以对宠物昵称、领养日期等数据项进行单独操作,设置数据类型等参数。

交流论坛模块:包括话题板块模块、发帖、回帖、帖子管理等字模块,论坛模块里存在各种各样的话题板块,用户在相应的板块讨论相应的话题,用户在线发帖、回帖,管理人员管理所有论坛的帖子,对违规的在线删帖。

宠物秀场管理模块:相关权限用户可以进行宠物秀场信息的查询、添加、修改、删除操作,也可以对宠物品种、宠物图片等数据项进行单独操作,设置数据类型等参数。

数据库设计 概念设计

在需求分析中,我们用来分析的对象往往是抽象的概念,所以在这个环节应当避免过于细致的细节分析,而是通过这些抽象的概念来分析实体所具备的属性和实体之间的联系。宠物领养系统利用E-R图对上述实体和联系进行描述。

图4.2 普通用户信息E-R关系图

图4.3 宠物转让信息E-R关系图

图4.4宠物秀场E-R关系图

图4.5 宠物领养信息E-R关系图

图4.6 评论信息E-R关系图

总体ER图如下图所示。

图4.7 总体ER图

逻辑设计

通过上一小节中助眠小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表4.1 adopting_pets (领养宠物)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

adopting_pets_id

int

10

0

N

Y

领养宠物ID

2

regular_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

user_phone_number

varchar

64

0

Y

N

用户电话

5

adoption_date

date

10

0

Y

N

领养日期

6

pet_nickname

varchar

64

0

Y

N

宠物昵称

7

application_remarks

text

65535

0

Y

N

申请备注

8

examine_state

varchar

16

0

N

N

未审核

审核状态

9

examine_reply

varchar

16

0

Y

N

审核回复

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4.2 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:

表4.3 forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表4.4 pets (宠物类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pets_id

int

10

0

N

Y

宠物类型ID

2

pet_type

varchar

64

0

Y

N

宠物类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4.5 pet_show (宠物秀场)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pet_show_id

int

10

0

N

Y

宠物秀场ID

2

pet_name

varchar

64

0

Y

N

宠物名称

3

pet_breeds

varchar

64

0

Y

N

宠物品种

4

pet_pictures

varchar

255

0

Y

N

宠物图片

5

pet_type

varchar

64

0

Y

N

宠物类型

6

pet_color

varchar

64

0

Y

N

宠物颜色

7

pet_videos

varchar

255

0

Y

N

宠物视频

8

introduction_to_pets

text

65535

0

Y

N

宠物简介

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4.6 pet_transfer (宠物转让)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pet_transfer_id

int

10

0

N

Y

宠物转让ID

2

pet_nickname

varchar

64

0

Y

N

宠物昵称

3

pet_breeds

varchar

64

0

Y

N

宠物品种

4

pet_pictures

varchar

255

0

Y

N

宠物图片

5

pet_type

varchar

64

0

Y

N

宠物类型

6

pet_color

varchar

64

0

Y

N

宠物颜色

7

pet_age

varchar

64

0

Y

N

宠物年龄

8

pet_characteristics

varchar

64

0

Y

N

宠物特性

9

reason_for_transfer

varchar

64

0

Y

N

转让原因

10

adoption_notes

text

65535

0

Y

N

领养备注

11

contact_phone_number

varchar

64

0

Y

N

联系电话

12

hits

int

10

0

N

N

0

点击数

13

praise_len

int

10

0

N

N

0

点赞数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4.7 regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_phone_number

varchar

64

0

Y

N

用户电话

4

user_gender

varchar

64

0

Y

N

用户性别

5

user_address

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

更新时间

5 章 系统实现  登录模块的实现

用户登录的验证将不再局限于登录信息和权限的匹配验证,而是另外增加了一个验证码,只有界面上所有的编辑框数据都准确的情况下才能实现登录成功。管理员的登录和前台用户登录是一样的过程,其主要就是利用权限字段来完成对用户或管理员的角色识别。

用户登录流程图如下所示。

图5.1 用户登录流程图

登录界面如下图所示。

图5.2 登录界面

登录关键代码如下:

 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.3 用户注册流程图

用户注册界面如下图所示。

图5.4 用户注册界面

注册关键代码如下:

 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.5 发表交流流程图

发表交流界面如图所示。

图5.6 发表交流界面

宠物秀场收藏模块的实现

用户选择相应的宠物秀场收藏,通过id传参,找到id为此传参的文化,在收藏页提交收藏记录表单,生成收藏记录,用户在个人中心管理个人的收藏夹。

宠物秀场收藏界面如下图所示。

图5.7 宠物秀场收藏界面

宠物领养模块的实现

用户点击宠物转让之后,会展示宠物转让详情信息,宠物转让详情信息中有一个操作列表,包括有收藏,评论与领养,点击预订这个按钮会跳转到相对应的宠物领养页面,宠物的领养需要填写领养的日期,宠物的年龄等信息。

宠物领养流程如下图所示。

图5.8 宠物领养流程

宠物领养界面如下图所示。

图5.9 宠物领养界面

 后台模块的实现 用户管理模块的实现

用户通过注册了方可获得登录使用权限,此时选择普通用户选项,系统就会自动转到用户注册工作面,在注册该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该用户的基础信息后选择确认即可完成注册。检索用户信息,在新增用户信息以后,在检索工具栏中填写对应的用户信息,系统就会将该用户有关的所有信息展示出来。

用户管理流程图如下所示。

图5.10 用户管理流程图

用户管理界面如下图所示。

图5.11 用户管理界面

用户管理关键代码如下:

宠物类型模块的实现

管理员执行宠物类型管理,并可以操作相关内容,例如添加,查看,编辑和删除。通过单击“添加宠物类型”,可以通过宠物类型添加界面添加详细信息并添加宠物类型注释。单击查看字段级别链接以查看有关所选字段级别的信息。然后单击“提交”跳转重返到添加页面。添加成功后的信息会载入到宠物类型查询列表中,管理员可进行编辑以及修改。

宠物类型管理流程如下图所示。

图5.12 宠物类型管理流程

宠物类型管理界面如下图所示。

图5.13 宠物类型管理界面

宠物类型管理关键代码如下:

 宠物秀场管理模块的实现

在主页左侧菜单栏中点击“宠物秀场管理”按钮,再从二级目录中点击“新增宠物秀场”按钮,进入到新增宠物秀场界面。在此处宠物秀场可以添加宠物秀场的宠物名称、宠物颜色、宠物品种、宠物类型。

在主页左侧菜单栏中点击“宠物秀场管理”按钮,再从二级目录中点击“查询宠物秀场”按钮,进入到查询宠物秀场界面。在此处宠物秀场可以查询当前所有宠物秀场记录。

宠物秀场管理流程如下图所示。

图5.14 宠物秀场管理流程

宠物秀场管理界面如所示。

图5.15 宠物秀场管理界面

宠物秀场管理关键代码如下所示。

宠物转让管理模块的实现

宠物转让管理包括新增宠物转让、删除宠物转让、修改宠物转让、查询宠物转让等,以宠物转让新增为例,在视图层请求宠物信息新增,反馈后,调用业务逻辑层,通过业务逻辑层的接口调用底层的数据逻辑层完成数据库联动操作。

宠物转让管理的流程如所示。

图5.16宠物转让管理流程

宠物转让管理界面如所示。

图5.17 宠物转让管理界面

6 章 系统测试 测试目的

系统测试的目的是为了尽可能多的检查出系统出现的bug,因为系统是人做出来的,肯定存在由于算法等各种原因造成问题,错误暴露得越早越好,如果能在系统上线之前就能找到这些bug肯定是最好不过了的,所以需要对系统进行测试。本文主要就是对系统进行了兼容性的测试,还有就是使用了典型测试用例进行测试。

测试用例 登录测试

登录测试用例如下表所示。

表6.1 登录测试用例

测试用例编号

YL_01

测试用例名称

系统使用者登录

测试用例描述

登录者输入用户名、密码和验证码

系统入口

浏览器

步骤

预期结果

实际结果

输入正确的用户名、密码和验证码

提示“登录成功”,并进入系统

预期结果

输入错误的用户名、密码和验证码

提示“登录失败”,并返回登录界面

预期结果

不输入用户名、密码和验证码

提示“请输入完整”

预期结果

注册测试

注册测试用例如下表所示。

表6.2 注册测试用例

测试用例编号

YL_02

测试用例名称

系统使用者注册账号

测试用例描述

使用者输入用户名、密码以及个人信息进行账号注册

系统入口

浏览器

步骤

预期结果

实际结果

输入系统不存在的用户名、密码和个人信息

提示“注册成功” 

预期结果

输入系统已存在的用户名

提示“注册失败”,并返回注册界面

预期结果

不输入用户名、密码和个人信息

提示“请输入完整”

预期结果

增加资讯测试

新增资讯测试用例如下表所示。

表6.3 新增资讯测试用例

测试用例编号

YL_04

测试用例名称

系统使用者进行新增资讯

测试用例描述

使用者输入资讯标题、内容等信息

系统入口

浏览器

步骤

预期结果

实际结果

输入完整的资讯标题和内容

提示“新增成功”,并进入系统

预期结果

不输入的资讯标题和内容

提示“请输入完整”

预期结果

                                                       7 章 结论

宠物领养系统采用django框架开发,该系统非常完美的集优点于一身,成熟、强大、易理解易使用,通过使用这个结构,降低了开发的难度。本系统实现了基于django的宠物领养系统,将数据操作维护的过程转化成电脑操作流程,具体实现了对系统用户管理、宠物资讯数据维护、宠物转让数据维护、宠物领养数据维护,帮助使用者进行数据操作维护,简化工作流程,提高工作效率和盈利。

目前完成的宠物领养系统,还有许多有待改进的地方。一个是功能上的改进,用户理应可以修改自己的相关信息,故应增设个人中心功能;另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如数据当前分析和未来预测等。第二个是技术上的改进,由于对开发框架不太熟悉,权限管理这部分,本系统采用一个Python页面来规定好导航栏,即跳转的页面,这相对比较不灵活,如果将URL路径记录到数据库并实现增删查改会比较好;另外就是对EasyUI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。

                                                          参考文献

[1]宋盼盼,周猛,肖莹. 基于python语言的水体营养状态评价系统的设计 [J]. 水利技术监督, 2024, (01): 45-49.

[2]张强. 一种基于Python语言的神经元放电特性快速检测系统[P]. 江苏省: CN117426779A, 2024-01-23.

[3]魏晓玲,刘红英. 基于Python和Django框架的琴房管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (22): 51-53.

[4]庞达,温家铭,武延鑫等. Django框架在海洋平台甲板片建造管理中的应用研究 [J]. 天津科技, 2023, 50 (11): 56-58+62.

[5]杨芬,宋晓燕. MySQL数据库应用的课程教学分析 [J]. 电子技术, 2023, 52 (10): 180-181.

[6]杨华,徐扬. MySQL数据库对中文编码支持的探讨 [J]. 网络安全和信息化, 2023, (10): 157-160.

[7]张小梅,何菊,佘侃侃等. Django框架下的用户鉴权机制分析与研究 [J]. 无线互联科技, 2023, 20 (18): 146-148.

[8]Dong F . Discussion on the Teaching Reform of Python Language Programming Course for Engineering Majors Based on OBE [J]. Journal of Big Data and Computing, 2023, 1 (1):

[9]Ribeiro V S D ,Lopes P L F ,Ângelo M M L , et al. Development of a computational tool in the Python language for the application of the AHP-Gaussian method [J]. Procedia Computer Science, 2023, 221 354-361.

[10]马吉聪. 基于Django框架的糖尿病预测系统的设计与实现[D]. 云南师范大学, 2021.

[11]刘长龙. Python高效开发实战[M]. 电子工业出版社: 202108. 521.

[12]周粉妹,吴仁平,钱荣华等. 基于SSM的宠物领养网站设计 [J]. 扬州职业大学学报, 2021, 25 (01): 32-35.

[13]吴文洋,刘世宇. 基于B/S架构宠物领养管理系统设计 [J]. 软件, 2020, 41 (11): 85-87.

[14]杨芹. 宠物领养Web App的设计与实现[D]. 华中科技大学, 2020.

[15]黄佳,王剑. 一种基于区块链的宠物领养系统[P]. 江苏省: CN111768273A, 2020-10-13.

在此论文完成之际,感谢我的指导老师。在指导老师的网页设计课上,当时我学到了很多东西,这对于我实习过程中也打了一定的基础,而且指导老师对于我的设计也提出许多建议,并予以悉心的指导,对于一些细小的问题都耐心的指导我去完善,授予我写论文的心得,时常的鼓励我,另外感谢教导我完善此项目的前端同学,对于这个项目,我是边学习边实现完成的,有许多东西开始并不是很明白,但前端开发的同学非常耐心的引导我去将这个项目完成,在系统的后端开发中,所用到的后台开发技术也时常会给我讲解,助于我更好的将论文完成,在此对帮助到我的同学和一直予以教导的指导老师致以衷心的感谢,祝事业有成。

相关知识

django宠物救助系统设计和实现(程序+开题报告)
计算机毕业设计宠物领养救助系统设计与实现SSM+源码+调试部署+系统+数据库+lw
django宠物上门服务系统(程序+开题报告)
django宠物领养系统(程序+开题报告)
【附源码】django计算机毕业设计宠物爱好者交流网站的设计与实现(源码+mysql+论文)
python计算机毕设【附源码】宠物寄养系统(django+mysql+论文)
宠物领养系统的设计与实现(程序+开题报告)(开题报告+源码)
基于django+vue+Vue宠物爱好者交流网站的设计与实现【开题报告+程序+论文】
基于nodejs+vue基于Vue的宠物饲养管理系统设计与实现[开题+源码+程序+论文]计算机毕业设计
基于django+vue+Vue宠物领养系统的设计与实现【开题报告+程序+论文】

网址: django宠物领养系统的设计与实现 毕业设计程序源码32724 https://m.mcbbbk.com/newsview490242.html

所属分类:萌宠日常
上一篇: campus
下一篇: 布偶免费领养,有意者联系