基于python的宠物信息交流系统---附源码74885

摘 要

在当今社会,随着人们生活质量的提高和对精神健康的追求,宠物已经成为我们生活中不可或缺的伙伴。与家中宠物朝夕相处,我们与宠物之间建立了深厚的情感纽带。然而,宠物也有可能生病,需要接受医疗护理。与人类一样,无论是人还是动物,都需要一个方便且合适的场所来接受治疗。同时,智能化医院平台的普及使得正规化且办公化管理的医院向高效率的新技术转型。这种转型能够提高管理效率、优化服务质量,并方便快捷地改善各个运营部门的工作环境。因此,基于python的宠物信息交流系统成为宠物信息的重要工具。该系统简单实用、灵活,可以事半功倍。

宠物信息交流系统采用了Python作为后端开发语言,并使用HTML作为前端页面的展示语言。系统通过Django框架进行逻辑控制,使用MySQL数据库来存储数据。前端界面使用了Vue.js框架,以提供良好的用户体验。

通过基于python的宠物信息交流系统,医院可以更加高效地管理各项工作,并提供优质的服务。系统可以在多个环境下运行,为宠物信息带来便利与效益。

总之,基于python的宠物信息交流系统适应了现代化医院的需求,通过采用先进的技术和框架,可以实现高效的逻辑控制和数据管理。该系统为宠物信息提供了全面的改善和升级,为医院工作人员和宠物主人提供了更好的体验和服务。

关键词:基于python的宠物信息交流系统、Django框架、MySQL数据库、Vue.js框架

Pet information communication system based on python

Abstract

In today's society, with the improvement of people's quality of life and the pursuit of mental health, pets have become an indispensable partner in our life. Getting along with our family pets day and night, we have established a deep emotional bond with our pets. However, pets are also likely to get sick and need medical care. As with humans, both humans and animals need a convenient and suitable place to receive treatment. At the same time, the popularity of intelligent hospital platform makes the standardized and office-managed hospitals transform into new and efficient technologies. This transformation can improve management efficiency, optimize service quality, and easily and quickly improve the working environment of each operating department. Therefore, the python-based pet information communication system has become an important tool for pet information. The system is simple, practical, flexible, and can get twice the result with half the effort.

The pet information communication system uses Python as the back-end development language, and uses HTML as the display language of the front-end page. The system is logically controlled through the Django framework, using the MySQL database to store the data. The front-end interface uses the Vue.js framework to provide a good user experience.

Through the python-based pet information exchange system, hospitals can manage their work more efficiently and provide quality services. The system can operate in multiple environments, bringing convenience and benefits to pet information.

In conclusion, the python-based pet information exchange system adapts to the needs of modern hospitals and can achieve efficient logical control and data management by adopting advanced technologies and framework. The system provides comprehensive improvements and upgrades to pet information, providing a better experience and service for hospital staff and pet owners.

Keywords: Pet information communication system based on python, Django framework, MySQL database, Vue.js framework

目  录

第1章 绪论

1.1 研究背景

1.2 国内外研究现状

1.3 本文的组织结构

第2章 相关技术介绍

2.2 Python语言

2.3 Vue.js 介绍

第3章 系统分析

3.1 可行性分析

3.1.1 法律可行性分析

3.1.2 技术可行性分析

3.1.3 经济可行性分析

3.2 功能需求分析

3.3 非功能需求分析

3.4 用例分析

3.5 业务流程分析

第4章 系统设计

4.1 系统架构设计

4.2 系统功能结构

4.3 功能模块设计

4.4 数据库设计

4.4.1 E-R图

4.4.2 表结构设计

第5章 系统实现

5.1 开发工具

5.2 注册模块

5.3 登录模块

5.4 系统前端模块

5.4.1 个人资料模块

5.4.2 首页模块

5.4.3 寻宠/寻主模块

5.5 系统后台模块

5.5.1 后台首页模块

5.5.2 宠物信息管理模块

5.5.3 交流管理模块

5.5.4 通知公告管理模块

第6章 系统测试

6.1 测试概述

6.2 测试过程

6.2.1 登录测试

6.2.2 信息录入测试

6.2.3 信息更新测试

6.2.4 信息删除测试

6.3 测试结果

第7章 总结与展望

7.1 总结

7.2 展望

参考文献

致谢

第一章   绪论

1.1 研究背景

目前,很多国内宠物信息信息管理一般采用纯手工管理。这种方法的弊端在于参与管理的人员文化水平不一,字迹不一,互相之间会导致信息传达不便,而.且纸质信息传载媒体有着一个很大的弱点就是容易损坏,造成信息丢失。现在国内也有一些宠物信息交流的软件,采用的技术也是多种多样,但大多数宠物信息交流系统主要用于大型宠物信息的关键部门。至于小型宠物信息,利用宠物信息交流系统管理日常业务的并不多。

1.2 国内外研究现状

国外研究现状

国外的宠物市场已经进入了成熟阶段,国外宠物互联网应用为了满足不同用户不同阶段的需求也出现了不少值得借鉴的新颖产品。在国外,宠物在发达国家里作为产业已经有一二百年的历史,形成了繁育、训练、用品用具、医疗、医药、贸易的产业链。比如一些发达国家,如美国、日本和欧洲国家,宠物信息交流系统已经得到广泛应用。这些系统通过利用物联网、人工智能和大数据等技术,在宠物医疗领域提供了更高效、更便捷的服务。

国内研究现状

在国内,宠物医疗虽然还是一个新生行业,但宠物信息的数量之多已经超出人们的意料,但其中黑宠物信息也占了起码一半的比例,同时经济时报曾有一评论指出宠物信息这一行业暴利在500%以上。在国内暴利行业排名中跃居到第七位,紧随在地产、服装等行业之后。国内认为宠物医疗不像人类医疗,只是涉及部分人利益,一直没有相关法律出台,所以出现了宠物信息开遍地,宠物用药漫天要价的情形。时至今日,养宠物已成普遍,国家开始重视并开始定出相关法规来规范这一行业,宠物信息使用管理信息系统不但让顾客对医院内的药价和治疗费一目了然,也让相关部门前来检查时有据可查,由此可见,使用管理信息系统在一定程度上能消除宠物信息里那口说无凭,坑害消费者的状况,对国家规范宠物医疗行业有着重要作用。

1.3 本文的组织结构

六个章节共同组成了本文研究及设计内容,包括:

第一章:绪论。本文章的开头部分,对本题目的研究背景和国内外研究现状等一些做文字性的描述。

第二章:相关技术介绍。主要介绍Django框架、Python嵌入式脚本语言、Vue.js 介绍等。

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

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

第五章:系统实现。将本系统分为前提的开发工具介绍和后期的功能代码实现。

第六章:系统测试。系统完成后,根据各个模块的测试用例才对各个模块进行功能测试。

第二章  相关技术介绍

2.1 django框架介绍

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位,被认为是该领域的佼佼者。

2.2 Python语言

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

2.3 Vue.js 介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。

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

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

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

易用:在有HTML,CSS,JavaScript的基础上,快速上手;Vue.js 的 API 是参考了AngularJS、KnockoutJS、Ractive.js、Rivets.js;Vue.js 的 API 的对于其他框架的参考不仅是参考,其中也包含了许多 Vue.js 的独特功能。

灵活:简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。

性能:20kb min+gzip 运行大小、超快虚拟 DOM 、最省心的优化。

第三章   系统分析

3.1 可行性分析

3.1.1 法律可行性分析

开发软件有没有触犯法律,这涉及到软件或者系统能不能发布的问题。如果触犯了法律,就必将会受到法律的制裁。常见法律问题就是软件抄袭问题,若是抄袭别人软件,将会受到严厉惩罚。

3.1.2 技术可行性分析

软件产业经过多年的发展,现在已经达到了很大的规模,从事软件开发的专业人员不计其数,软件产业的重要性已经上升到了影响和推动国民经济发展的核心地位。本系统基于的架构,目前技术已经非常的成熟,是不存在技术上面难以实现的麻烦。

3.1.3 经济可行性分析

开发软件所需的时间、人力和物力成本,开发完成后的收益如何,从投资回报的角度软件所需功能在现有经济条件能不能实现等进行深入的考虑,都符合实际的要求。所以宠物信息交流系统具有经济可行性和实用性,可以节约管理成本。

3.2 功能需求分析

宠物信息交流系统主要是为了更加地完善,对宠物论坛、宠物资讯、宠物信息传播等提供了方便的机制。本系统有多类使用者,分别是普通用户、管理员。以下是从这种用户的角度分别介绍本系统所要实现的功能。

普通用户:

注册:首先检查用户名和邮箱是否存在,如不存在即可进行注册,并将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。

登录:使用宠物信息交流系统前是需要用户登录个人账号。

首页:用户可以查看轮播图、宠物资讯等

宠物论坛:可以查看浏览所有论坛信息并可收藏、点赞和评论等

通知公告:用户可以查看网站公告、关于我们、联系方式、网站介绍等。

宠物资讯:可以在某个宠物资讯界面点击查看详情并可点赞收藏和评论

宠物信息:可以在某个宠物信息界面点击查看详情并可点赞收藏和评论

寻宠/寻主可以输入用户姓名、手机号码、宠物名称、宠物编号、宠物品种、宠物图片、宠物年龄、宠物性别、宠物颜色、丢失时间、宠物描述、丢失地址等信息发布寻宠或寻主需求

我的账户:修改个人资料和密码。

个人中心:可查看到个人首页、寻宠/寻主、投诉反馈、通知消息、收藏等信息

管理员:

后台首页:可查看到普通用户统计、宠物信息统计等数据

系统用户管理:对用户进行管理,用户的注册,包括用户昵称、用户名、账号信息:

宠物品种管理: 管理员对宠物品种进行添加、详情查看删除等管理

宠物信息管理: 管理员对宠物信息列表添加、详情查看删除等管理

寻宠/寻主管理: 管理员对寻宠/寻主进行列表查看、添加、删除等管理

投诉反馈管理: 管理员对投诉反馈列表进行查看、删除及在详情进行备注回复等管理

通知信息管理:管理员对通知信息进行列表查看、删除及在详情进行发布通知信息等管理

系统管理: 对系统的轮播图、公告、资讯内容

通知公告管理: 对系统的通知公告进行维护管理

资源管理: 管理员对宠物列表查看、添加、删除及分类等管理

交流管理: 管理员对论坛列表查看、添加、删除及分类等管理。

3.3 非功能需求分析

系统非功能需求有非常多,比如性能需求、可承载最大用户数、稳定性、易用性需求等。本系统分析时考虑到易用性需求,因为系统是给人使用的,所以必须充分从用户的角度出发,考虑用户体验,使系统易理解易上手易操作。

3.4 用例分析

1.普通用户主要使用系统进行宠物领养申请,下图所示为普通用户的用例。

                

图3-1 用户用例图

2.下图所示为管理员的用例。

          

图3-2 管理员用例图

3.5 业务流程分析

系统业务流程图如下所示。

                    图3-4 系统业务流程图

第四章  系统设计

4.1 系统架构设计

本系统架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。

图4-1系统架构图

4.2 系统功能结构

为了将系统从“做什么”落实到“怎么做”,基于系统设计原则,对系统功能进行更适合编码实现的功能划分。根据上图的系统架构设计,整理出规范的系统功能结构图,为系统的实现编码做好准备。

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

图4-2系统功能结构图

4.3 功能模块设计

用户管理针对所有用户和管理员。未注册用户点击注册,进入注册页面填写新用户信息,得到自定义生成账号后,注册完成。未注册用户注册的活动图如下图所示。

图4-3未注册用户注册活动图

用户可进行登录使用更多功能,首先进入用户登录界面,输入用户账号和密码,后台对账号和密码信息进行核对验证,验证成功则页面直接显示登录用户昵称代表登录成功,否则返回用户登录界面。用户登录活动图如下图。

图4-4用户登录活动图

用户登录后,进入功能页面,进行宠物信息信息浏览通知公告、医生目录、预约挂号用户使用功能活动图如所示

图4-5用户使用功能活动图

用户功能界面可对自己的密码进行修改。进入修改密码界面后核对当前密码,核对成功后填写新密码。修改密码活动图如下图所示。

图4-6修改密码活动图

4.4 数据库设计

宠物信息交流系统采用的数据库是MySQL,该部分将根据系统需求和设计,设计合理的数据库。本系统考虑到之后系统的扩展集群,数据库将不使用外键。此外,不用外键时数据管理也较为简单,操作更加方便,性能更高。

4.4.1 E-R图

E-R图,更加直观的告诉开发人员系统的各个数据的属性,各个数据之间的联系,各个数据的类型。能通过该模型更直观地了解数据库的设计,并根据对其逐渐改善。

本系统图设计,如下图所示。

图4-7系统E-R图

4.4.2 表结构设计

本系统根据第三范式的思想设计数据库,减少最大程度的冗余,总共建立有多个表,医生排班表、挂号预约表、宠物就诊表、药品信息表、药品入库表、药品出库表、药品类型表等。

表结构如下所示。

表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

用户编号:

表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

更新时间:

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

表complaint_feedback (投诉反馈)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

complaint_feedback_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

mobile_phone_number

varchar

64

0

Y

N

手机号码

5

complaint_name

varchar

64

0

Y

N

投诉名称

6

complaint_suggestions

text

65535

0

Y

N

投诉建议

7

complaint_content

longtext

2147483647

0

Y

N

投诉内容

8

complaint_remarks

longtext

2147483647

0

Y

N

投诉备注

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

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

4

url

varchar

255

0

Y

N

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

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

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:

表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

更新时间:

表notification_information (通知信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notification_information_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

notification_name

varchar

64

0

Y

N

通知名称

5

notification_number

varchar

64

0

N

N

通知编号

6

notification_details

text

65535

0

Y

N

通知详情

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表pet_breeds (宠物品种)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pet_breeds_id

int

10

0

N

Y

宠物品种ID

2

variety_name

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

更新时间

表pet_information (宠物信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pet_information_id

int

10

0

N

Y

宠物信息ID

2

pet_name

varchar

64

0

Y

N

宠物名称

3

pet_id

int

10

0

N

N

0

宠物编号

4

pet_breeds

varchar

64

0

Y

N

宠物品种

5

pet_pictures

varchar

255

0

Y

N

宠物图片

6

pet_age

varchar

64

0

Y

N

宠物年龄

7

pet_gender

varchar

64

0

Y

N

宠物性别

8

pet_description

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

更新时间

表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

mobile_phone_number

varchar

64

0

Y

N

手机号码

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表seeking_petseeking_master (寻宠/寻主)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seeking_petseeking_master_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

mobile_phone_number

varchar

64

0

Y

N

手机号码

5

pet_name

varchar

64

0

Y

N

宠物名称

6

pet_id

int

10

0

N

N

0

宠物编号

7

pet_breeds

varchar

64

0

Y

N

宠物品种

8

pet_pictures

varchar

255

0

Y

N

宠物图片

9

pet_age

varchar

64

0

Y

N

宠物年龄

10

pet_gender

varchar

64

0

Y

N

宠物性别

11

pet_color

varchar

64

0

Y

N

宠物颜色

12

lost_time

date

10

0

Y

N

丢失时间

13

pet_description

text

65535

0

Y

N

宠物描述

14

lost_address

text

65535

0

Y

N

丢失地址

15

examine_state

varchar

16

0

N

N

未审核

审核状态

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

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_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.1 开发工具

系统中应用的开发工具总结如下表所示。

表5-1开发工具

名称

工具

版本

操作系统

IDE(Integrated Development Environment)

Windows

PyCharm

7/8/10

最新版本

服务器

Django框架

最新版本

Python解释器

Python

3.x 版本

数据库

前端框架

浏览器

界面工具

MySQL

Vue.js

Google Chrome

Adobe Photoshop

5.7

 最新版本

    最新版本

  最新版本

5.2 注册模块

未注册用户在用户注册界面userRegister.html,输入新用户信息,点击注册后,新用户信息由前端界面传递到后端控制层userAction.py,调用addUser(user)方法。通过userDAOImp.py向数据库的用户表插入用户信息。由于用户账号是自动生成的,若成功则返回注册成功的提示,并显示新用户的用户账号;若失败,则返回登录界面,并显示登录失败的提示。

注册界面如下所示。

图5-1注册界面

用户注册关键代码如下所示。

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.3 登录模块

用户在首页点击登录,进入用户登录界面userLogin.html,输入用户账号和密码,点击登录,用户账号和密码信息由前端界面传递到后端控制层userAction.py,调用userLogin(user)方法。通过userDAOImp.py向数据库的用户表搜索该用户账号与密码,并将最终结果反馈给前端。若成功则返回首页;若失败,则返回登录界面,并显示登录失败的提示。

登录界面如下所示。

图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.4 系统前端模块

5.4.1 个人资料模块

登录用户在首页点击进入用户中心userCenter.html,再点击修改个人信息按钮进入userChangeInfo.html界面。系统根据session中存储的当前登录用户的账号,向后端控制层userAction.py发送请求,搜索当前用户信息。userAction.py调用userDAOImp.py的queryByUserId(user)方法,向数据库的用户表搜索当前用户信息,并将用户信息以对象的形式返回给userChangeInfo.html界面,显示当前用户的个人信息。

如果用户要对个人信息进行修改,则在修改完成后点击确认按钮。前端界面将发送包含修改后的用户信息的请求到后端控制层userAction.py,调用changeUser(user)方法。通过userDAOImp.py向数据库的用户表更新用户信息。若成功,则返回更改成功的提示,并刷新userChangeInfo.html界面以显示更新后的用户信息;若失败,则显示修改失败的提示。

5.4.2 首页模块

用户在登录状态下可以查看首页的轮播图、宠物资讯等

首页界面如下所示。

图5-3首页界面

5.4.3 寻宠/寻主模块

用户在登录状态下点击寻宠/寻主,可以输入用户姓名、手机号码、宠物名称、宠物编号、宠物品种、宠物图片、宠物年龄、宠物性别、宠物颜色、丢失时间、宠物描述、丢失地址等信息发布寻宠或寻主需求

宠物寻宠/寻主界面如下所示。

图5-4寻宠/寻主界面

寻宠/寻主的关键代码如下。

WSGI_APPLICATION = "app.wsgi.application"

DATABASES = {

    "default": {

        "ENGINE": "django.db.backends.mysql",

        "NAME": "project93355",

        "USER": "root",

        "PASSWORD": "root",

        "HOST": "127.0.0.1",

        "PORT": "3306",

    }

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

​​​​​​​5.5 系统后台模块

5.5.1 后台首页模块

管理员可以可查看到普通用户统计、宠物信息统计等数据

后台首页界面图如下所示。

图5-5后台首页界面

5.5.2 宠物信息管理模块

管理员对宠物信息列表添加、详情查看删除等管理。

宠物信息管理设计效果如下图所示。

图5-7宠物信息管理界面

宠物信息管理界面逻辑代码如下:

from hashlib import md5

def md5hash(key):

input_name = md5()

input_name.update(key.encode("utf-8"))

return input_name.hexdigest()

​​​​​​​5.5.3 交流管理模块

管理员对论坛列表查看、添加、删除及分类等管理。

交流论坛管理界面如下图所示。

图5-8交流管理界面

​​​​​​​5.5.4 通知公告管理模块

管理员可以对通知公告信息进行增删改查操作。

通知公告管理页面设计效果如下图所示。

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

通知公告管理的关键代码如下。

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}

第六章   系统测试

6.1 测试概述

软件测试是软件开发完成后必须经过的一道程序,它在软件开发过程中地位十分重要,需要由专业的测试工程师来对软件进行各方面的测试,大到功能模块测试,小到代码的单元测试,这对测试工程师来说需要有足够的耐心和专业的测试方案,软件测试归根结底就是对软件的结构和功能的综合测评,需要做到结构稳定和功能正确,二者兼顾。软件测试也叫寻找系统bug的过程,世界上没有完美无缺、不存在bug的软件,只能将软件的bug降到最低最小,来追求极致。

6.2 测试过程

6.2.1 登录测试

登录测试是系统最开始就要进行,测试用户能否登录,才能完成后续的功能操作。

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

表6-1登录测试

用例编号

YL001

程序版本

1.00

功能名称

使用者登录测试

编制人

李铁蛋

功能描述

根据用户的登录情况测试

用例目的

测试用户登录情况是否正确

测试项

测试数据

测试结果

预期结果

用户名

为空

请输入用户名

请输入用户名

密码

为空

请输入密码

请输入密码

用户密码组合

用户名:klouse 密码 klouses

用户与密码不匹配

用户与密码不匹配

用户密码组合

用户名 : klouse 密码

klouse

进入系统

正确的用户名和密码

登录系统

6.2.2 信息录入测试

管理员在发布信息页面,通过按照预先格式发布信息,如果因为输入时候缺少相关内容,就不能发布成功,且有相应错误提示

信息录入发布测试用例表如下所示。

表6-1信息录入发布测试

用例编号

YL002

程序版本

1.00

功能名称

信息发布测试

编制人

李铁蛋

功能描述

对使用者发布或者录入信息进行测试,判断其功能是否达到预期的要求

用例目的

对系统使用者录入发布信息进行原型测试。

测试项

测试数据

测试结果

预期结果

属性1

为空

请输入属性1对应的数据

请输入属性1对应的数据

属性2

为空

请输入属性2对应的数据

请输入属性2对应的数据

属性3

为空

请输入属性3对应的数据

请输入属性3对应的数据

全部输入

数据均填入

录入发布成功

录入发布成功

6.2.3 信息更新测试

管理员在更新信息页面,通过按照预先格式更新信息,如果因为输入时候缺少相关内容或者更新的数据不符合当前规范的话,就不能更新成功,且有相应错误提示

信息更新测试用例表如下所示。

表6-1信息更新测试

用例编号

YL003

程序版本

1.00

功能名称

信息更新测试

编制人

李铁蛋

功能描述

对使用者更新信息进行测试,判断其功能是否达到预期的要求

用例目的

对系统使用者更新信息进行原型测试。

测试项

测试数据

测试结果

预期结果

属性1

编号:321

编号更新成功

编号更新成功

属性2

名称:名称1

名称更新成功

名称更新成功

属性3

内容:内容1234内容

内容更新成功

内容更新成功

全部输入

数据均未更改

更新成功

更新成功

6.2.4 信息删除测试

管理员在信息页面,通过点击数据删除按钮来删除该条数据,如果该数据和其他数据有关联,则提示是否确定删除。

信息删除测试用例表如下所示。

表6-1信息删除测试

用例编号

YL004

程序版本

1.00

功能名称

信息删除测试

编制人

李铁蛋

功能描述

对使用者删除信息进行测试,判断其功能是否达到预期的要求

用例目的

对系统使用者删除信息进行原型测试。

测试项

测试数据

测试结果

预期结果

数据1

无任何关联的数据1

数据删除成功

数据删除成功

数据2

和其他数据有关联的数据2

请确认是否删除

请确认是否删除

6.3 测试结果

在经过之前的所有的工作之后,通过对软件的测试方法、测试原则还有典型的测试用例进行全面的、深入的介绍。经过对系统的全面测试,系统目前所具有的所有功能均成功的实现并且通过了测试,整个系统实现了基于 python 开发的期望。

第七章   总结与展望

7.1 总结

宠物信息交流系统采用Python和HTML作为开发技术,并结合Vue.js框架,实现了一个成熟、强大、易理解易使用的宠物信息交流系统。通过使用这些技术,降低了开发的难度。本系统实现了基于python的宠物信息交流系统,将数据操作维护的过程转化为电脑操作流程,具体实现了对系统人员管理、医生目录数据维护、预约挂号数据维护、药房信息数据维护,让使用者能更清晰的掌握运营情况,帮助使用者进行数据操作维护,简化工作流程,提高工作效率和盈利。

7.2 展望

目前完成的宠物信息交流系统,还有许多有待改进的地方。一个是功能上的改进,用户理应可以修改自己的相关信息,故应增设个人中心功能;另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如数据当前分析和未来预测等。第二个是技术上的改进,由于对开发框架不太熟悉,权限管理这部分,如果将URL路径记录到数据库中的话,并实现对其的增删查改操作,更能提高系统的灵活性和可扩展性,最后采用Vue.js作为前端框架,结合Python后端编程语言,还是有待提升系统的视觉效果和用户体验,希望日后能对这个系统有所改进。

参考文献

[1]林万芳.面向物联网专业的“Python程序设计”课程教学改革探索[J].物联网技术,2024,14(03):153-155.DOI:10.16667/j.issn.2095-1302.2024.03.039.

[2]朱江.Python在广播电视设备数据清洗实践中的应用[J].影视制作,2024,30(03):85-88.

[3]宋健,孟凯强,沈舒文,等.基于Python构建机器学习探究中药治疗胃癌通路决策树的规律性[J].世界中西医结合杂志,2024,19(02):225-232.DOI:10.13935/j.cnki.sjzx.240203.

[4]孙振林,柳飞,陶水忠,等.基于Python的房屋安全健康监测数据处理与预测分析[J].科学技术与工程,2024,24(06):2469-2479.

[5]胡王平,周裕康,孙荣坤,等.基于Python的振动监测与故障诊断系统开发[J].现代机械,2024,(01):11-15.DOI:10.13667/j.cnki.52-1046/th.2024.01.007.

[6]Savchuk S ,Dvulit P ,Kerker V , et al.Python Software Tool for Diagnostics of the Global Navigation Satellite System Station (PS-NETM)–Reviewing the New Global Navigation Satellite System Time Series Analysis Tool[J].Remote Sensing,2024,16(5):

[7]Jiang Y ,Bugby L S ,Lees E J .PMST: A custom Python-based Monte Carlo Simulation Tool for research and system development in portable pinhole gamma cameras[J].Nuclear Inst. and Methods in Physics Research, A,2024,1061169161-.

[8]宋李霞.Python编程语言在审计风险评估中的应用研究[J].企业改革与管理,2024,(03):121-123.DOI:10.13768/j.cnki.cn11-3793/f.2024.0128.

[9]田文涛.Python技术在计算机软件中的应用[J].集成电路应用,2024,41(02):344-346.DOI:10.19339/j.issn.1674-2583.2024.02.157.

[10]林文婧.Python和PyEcharts的数据可视化技术应用[J].集成电路应用,2024,41(02):204-205.DOI:10.19339/j.issn.1674-2583.2024.02.091.

[11]耿博,孙向华,冀建军,等.现代信息技术在高职宠物营养与食品教学中的应用[J].山东畜牧兽医,2024,45(02):95-98.

[12]Shervan G ,Kasra K ,J.M. W K , et al.EASYMORE: A Python package to streamline the remapping of variables for Earth System models[J].SoftwareX,2023,24

[13]Zizheng G ,Fei G ,Yu Z , et al.A python system for regional landslide susceptibility assessment by integrating machine learning models and its application[J].Heliyon,2023,9(11):e21542-e21542.

[14]Ranindya P ,Fabio M .Technical leverage analysis in the Python ecosystem[J].Empirical Software Engineering,2023,28(6):

[15]Leshinka E M ,F. T F .Application of Open-Source, Python-Based Tools for the Simulation of Electrochemical Systems[J].Journal of The Electrochemical Society,2023,170(10):

[16]Olabanji O S .Advancing Cloud Technology Security: Leveraging High-Level Coding Languages like Python and SQL for Strengthening Security Systems and Automating Top Control Processes[J].Journal of Scientific Research and Reports,2023,29(9):42-54.

[17]王红杰,崔丽,李鲲鹏.浅谈宠物狂犬病免疫及信息化管理[J].浙江畜牧兽医,2023,48(03):44-45.

[18]夏建京.基于物联网整合应用的宠物运输模式研究[D].北京邮电大学,2023.DOI:10.26969/d.cnki.gbydu.2023.002938.

[19]“十三五”国家重点研发计划“宠物疾病诊疗与防控新技术研究”项目开展年度推进会[J].中国农业科技导报,2019,21(11):171.

[20]谢文涛,林瑞冬,王妮,等.基于Django的宠物信息交流管理系统设计[J].电脑知识与技术,2019,15(25):57-58+69.DOI:10.14004/j.cnki.ckt.2019.3056.

致谢

在老师的教导和帮助下,本人完成了本篇论文,老师对论文的内容、格式都有非常严格的要求,在我写毕业论文的过程中,他多次给出了建议,并定期检查,对我们严格要求,帮助我们在文档的编写上写到极致和正确,他这种教学和工作态度,让我对他产生无限的敬佩感和尊敬感。写毕业论文的同时,作为应届生,我也忙着找工作中,遇到了很多选择,感到困惑迷茫的时候,老师给了我很多意见,感谢老师的耐心开导,跟她的聊天我明白了许多。

我还要感谢我的父母,一直以来都非常支持和相信我,在精神和经济上给了我很多力量,如今我将毕业走上工作之路,终于能报答父母的养育教导之恩。还有我大学期间所有老师和全体同学,遇到问题时,这些老师同学总是无私地帮助我,真的非常感谢,我也会加油努力成长为一个有用的人。

点赞+收藏+关注  →私信领取本源代码、数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1534384.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用Samba跨平台分享Ubuntu文件夹

1.安装Samba 终端输入sudo apt install samba 2.配置Samba 终端输入sudo vim /etc/samba/smb.conf 打开配置文件 滑动文件到最底下 输入以下内容 [Share] # 要共享的文件夹路径 path /home/xxx/sambashare read only no browsable yes编辑完成后按一下Esc按键后输入:wq回…

动不动就下跪的三星,离开天津了

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 三星辉煌岁月已过&#xff0c;万事凋零!如果说IBM、惠普、戴尔、苹果、富士康的离开有点惋惜的话&#xff0c;那三星的离开就是“活该”了。 成立于1993年的天津三星电子有限公司与2024年9月6日注销了&#xff0…

基于JavaWeb开发的java ssm springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于JavaWeb开发的java ssm springbootVUE疫情防疫系统系统前后端分离设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取…

MySQL字符集的转换

背景介绍 在使用MySQL过程中&#xff0c;如果字符集配置不当&#xff0c;可能会出现插入失败、数据乱码、 索引失效、数据丢失、查询不到期望结果等一系列使用异常的情况。因此&#xff0c;熟练掌握MySQL字符集和比较规则的配置方法&#xff0c;并在此基础上了解MySQL字符集与…

AMD CMD UMD CommonJs ESM 的历史和区别

这几个东西都是用于定义模块规范的。有些资料会提及到这些概念&#xff0c;不理清楚非常容易困惑。 ESM&#xff08;ES Module&#xff09; 这个实际上我们是最熟悉的&#xff0c;就是ES6的模块功能。出的最晚&#xff0c;因为是官方出品&#xff0c;所以大势所趋&#xff0c…

股价跌破1美元!这家激光雷达上市公司被沃尔沃「拖进」ICU

作为目前前装上车成本最高的传感器之一&#xff0c;绝大部分激光雷达初创公司的表现&#xff0c;令人沮丧。“很多时候&#xff0c;前方似乎有一个美好的未来&#xff0c;但事情并不总是按照预期发展。” 比如&#xff0c;作为曾经美股市值最高&#xff08;曾经巅峰期高达120亿…

【kafka-02】kafka集群搭建

Kafka系列整体栏目 内容链接地址【一】afka安装和基本核心概念https://zhenghuisheng.blog.csdn.net/article/details/142213307【二】kafka集群搭建https://zhenghuisheng.blog.csdn.net/article/details/142253288 kafka集群搭建 一&#xff0c;kafka集群搭建1&#xff0c;ka…

C++——深部解析哈希

好久不见给大家分享一张图片吧 目录 前言 二、库文件 1、哈希冲突 2 哈希函数 3、闭散列 三 、闭散列的实现和底层逻辑 1、哈希表&#xff08;闭散列&#xff09;的定义 2、哈希表&#xff08;闭散列&#xff09;的插入 3、哈希表&#xff08;闭散列&#xff09;的查找 4.哈希表…

灵雀云DevOps:加速应用交付,点燃业务创新引擎

导语 近日&#xff0c;国际知名咨询机构Gartner发布了2024年度DevOps平台魔力象限报告&#xff08;Gartner Magic Quadrant for DevOps Platforms&#xff09;&#xff0c;为信息化决策者在技术战略层面提供了选型和评估DevOps平台供应商的全面视角。报告中&#xff0c;中国云…

MYSQL数据库——MYSQL管理

MYSQL数据库安装完成后&#xff0c;自带四个数据库&#xff0c;具体作用如下&#xff1a; 常用工具 1.mysql 不是指mysql服务&#xff0c;而是指mysql的客户端工具 例如&#xff1a; 2.mysqladmin 这是一个执行管理操作的客户端程序&#xff0c;可以用它来检查服务器的配置和…

DeviceNet网关HT3S-DNS-MDN读取七星华创CS310空气流量计数据应用案例

七星华创流量计CS310系列 (MODBUS RTU) 通过DeviceNet网关HT3S-DNS-MDN 与台达DVP系列的PLC进行交换数据应用案例 一、概述 本文主要介绍使用HI-TOP网关 HT3S-DNS-MDN在台达DVP系列 PLC和七星华创CS310流量计之间进行数据交换。 解决的问题&#xff1a;台达DVP系列如何通过…

pdf怎么压缩的小一点?4个方法帮你一键压缩

pdf怎么压缩的小一点&#xff1f;将PDF文件压缩得更小&#xff0c;不仅可以显著节省存储空间&#xff0c;还能加快文件在网络中的传输速度&#xff0c;让分享与备份变得更加便捷。特别是在处理大型文档或包含高分辨率图像的PDF时&#xff0c;压缩功能尤为重要。通过选择适合的压…

运维人员转行 AI 大模型全攻略:史上最详尽总结,一篇在手,转行无忧!

前言 做运维的苦&#xff0c;谁做谁懂。有时候真感觉自己就像个杂役&#xff0c;在公司都快成修电脑的了。不装了&#xff0c;我要转行&#xff01;在此给大家分享点经验&#xff0c;希望能帮到你们。 运维工程师若要转行至大模型领域&#xff0c;需要学习一系列全新的技能与…

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一&#xff1a;只监听死信队列&#xff0c;在死信队列里面处理业务逻辑方法二&#xff1a;改为自动确认模式 问题发现 最近再学习RabbitMQ过程中&#xff0c;看到关于死信队列内容&#xff1a; 来自队列的消息可…

Google Dorks 发现隐藏的端点和参数

“作为一名漏洞赏金猎人&#xff0c;您的主要任务之一是绘制目标的攻击面&#xff0c;包括发现隐藏的参数和端点。这些可能会打开更深层次漏洞的大门&#xff0c;导致您可能未修补的 API 调用、未受保护的功能&#xff0c;甚至管理员级别的访问权限。Google Dorking 是一种非常…

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

一、引言 贫富差距的产生是信息差&#xff0c;技术贫富差距的产生亦如此。如果可以自我发现或者在别人的指导下发现优秀的开源项目&#xff0c;学习或工作效率真的可以事半功倍。 今天力荐的项目是LLaMA-Factory&#xff0c;我在去年8月份就开始使用这个项目进行模型部署和微…

域控操作十七点五:域用户无管理员权限下安装IT打包的软件

1&#xff0c;需要软件Runasspcadmin三件套和winrar压缩软件 2&#xff0c;将需要打包的软件放进这个文件夹内&#xff0c;使用播放器举个例子 3&#xff0c;打开runasspcadmin.exe 按图片写就行了 文件夹现在是这样的然后全选右击&#xff0c;用WinRAR添加到压缩包 这个可以自…

第二百三十一节 JPA教程 - JPA Transient示例、 JPA ID注释示例

JPA教程 - JPA Transient示例 如果我们不想将属性保存到数据库&#xff0c;我们可以使用Transient注释标记该字段。 例子 以下代码来自Professor.java。 package cn.w3cschool.common; import java.util.Locale;import javax.persistence.Entity; import javax.persistence.…

面试官:说说你对vue的mixin的理解,有什么应用场景?

一、mixin是什么 Mixin是面向对象程序设计语言中的类&#xff0c;提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类 Mixin类通常作为功能模块使用&#xff0c;在需要该功能时“混入”&#xff0c;有利于代码复用又避免了多继承的复杂 Vue中的mixin 先来看一…

Vue 中常用的基础指令

一. 什么是 Vue 指令 指令的定义和作用 指令是通过 Vue 实例的directives选项进行定义的。在指令的定义中&#xff0c;需要提供一个bind函数&#xff0c;它在指令第一次绑定到元素时被调用&#xff0c;可以执行一些初始化的操作。还可以提供update函数&#xff0c;它在指令所…