本文只展示了部分章,有需要完整的童鞋可以私信拿。
摘 要
时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,机票预订系统当然不能排除在外。本次我所开发的机票预订系统是在实际应用和软件工程的开发原理之上,运用Python语言以及Django框架进行开发,可以让用户实现在线进行浏览航班信息、旅游景点、酒店信息、系统公告,进行在线选择、预订飞机票、管理个人信息等操作。在系统开发之前首先要进行需求分析,分析出机票预订系统的主要功能,然后设计了系统结构。整体设计包括系统的功能、系统总体结构、系统数据结构和对系统安全性进行设计;最后要对系统进行测试,还要对测试的结果进行总结和分析,为以后系统的维护提供方便,也为以后类似系统的开发提供参考和帮助。这种个性化的网络系统管理更重视相互协调和管理合作,能激发管理者的创造性和主动性,这对机票预订系统来说非常有益。
关键词:机票预订系统,Django,MySQL
In the rapid progress of The Times, every industry is trying to develop advanced technology, through these advanced technology to improve their own level and advantages, air ticket booking system of course can not be excluded. The air ticket booking system I developed is based on the practical application and software engineering development principle, using Python language and Django framework for development, which allows users to realize online browsing flight information, tourist attractions, hotel information, system announcements, online selection, booking air tickets, management of personal information and other operations. Before the development of the system, we must first analyze the requirements, analyze the main functions of the air ticket booking system, and then design the system structure. The overall design includes the function of the system, the overall structure of the system, the data structure of the system and the design of the system security; Finally, to test the system, but also to summarize and analyze the results of the test, for the future maintenance of the system to provide convenience, but also for the future development of similar systems to provide reference and help. This kind of personalized network system management pays more attention to mutual coordination and management cooperation, which can stimulate managers' creativity and initiative, which is very beneficial to the air ticket booking system.
Key words:Flight reservation system, Django, MySQL
目 录
3.4.1 关于系统的基本要求............................................................................ 4
5.2.1管理员模块实现................................................................................... 21
随着社会的快速发展,计算机的影响是全面而深刻的。当前疫情已席卷全球,人们深感不安。随着目前疫情已经开放,大家都出行的需求也在不断提高,飞机作为出行的一种方式,深受大家的喜欢,在此基础下,机票预订系统的开发成为了一件非常有意义的事情。
1.1 课题的研究背景
机票预订系统主要通过计算机网络,对所需的信息进行统一管理,方便用户随时随地进行增添、修改、查询、删除各类信息。本系统极大的促进了系统与数据库管理系统软件之间的配合,满足了绝大部分用户的需求,给用户带来了很大的便利。以现在计算机的技术的应用,使计算机成为人们使用现代发达技术的桥梁。计算机可以有效的解决信息,十分方便的获取信息,从而提高工作的效率。
1.2 课题研究目的
全球经济在快速的发展,中国更是进步飞速,这使得国内的互联网技术进入了发展的高峰时期,这让中外资本不断转向互联网这个大市场。在这个信息高度发达的现在,利用网络进行信息管理改革已经成为了人们追捧的一种趋势。“机票预订系统”是运用Python语言和Django框架,以MySQL数据库为基础而发出来的。可以实现用户在线进行浏览航班信息、旅游景点、酒店信息、系统公告,并进行在线选座、预订飞机票等操作。为保证我国经济的持续性发展,必须要让互联网信息时代在我国日益壮大,蓬勃发展。伴随着信息社会的飞速发展,机票预订系统所面临的问题也一个接一个的出现,所以现在最该解决的问题就是信息的实时查询和访问需求的问题,以及如何利用快捷便利的方式让访问者在广大信息系统中进行查询、分享、储存和管理。这对我们的现实生活中具有非常重要的意义,所以机票预订系统诞生了。
1.3 课题的研究意义
现在还有许多人用纸质工具存储并管理信息,网络仅仅起到一般的辅助性作用。以我对人们常用软件的了解程度,大家仍然把传统的Office软件当成主要工具,机票预订系统相比Office软件来说会更全面更专业。本系统通过标签分类等方式,使管理人员对各项功能信息实现高效的管理,可以极大的提高管理人员的工作效率。
1.4 研究现状
在国外线上管理发展较早。相对应的软件的开发设计和保护也有所增加[4]。由于长時间的技术积累,产品研发工作更是持续推动,最终获得了较大的发展。如今,向着智能化,数字化和信息化的方位快速发展。各行各业都使用了相似的规章制度,推动发展,获得了较好的经济效益[5]。
在国内,因起步较晚,目前的管理还不够完善,发展不平衡,对机票预订系统的管理过程中应用电子计算机和网上的领域以及外部状况信息存有很大差别。技术性简易地取代了过去的形式或方式,但根据更科学的方式再次设计方案管理的这一环节中,大家必须舍弃传统的管理方式,尽早更改管理方法,变化管理理念合理操纵,使系统更细腻,控制成本、提升管理效益。
计算机作为信息科学的媒介和关键,它的出现和发展对人类社会的繁荣起着至关重要的作用。无论是政府机构还是公共机构,都会根据工作内容选择一套优秀的通信技术和专业的办公设备,利用这些技术和设备快速收集、解决和存储信息,使管理工作变得方便快捷,达到科学合理的管理目标。
总之,机票预订系统的发展呈不断上升的发展趋势,现在传统的手工制作和半手工管理的方法进入到信息化管理的转变过程中,必须使用和融合新的信息技术来完成传统的系统设计方法,才能保证系统的效果和质量。
第2章 相关技术
本机票预订系统的数据库采用的是MySQL数据库,并且选择了Python语言和Django框架进行开发项目,在项目开发过程中,实现了系统功能模块的安全性、实用性、稳定性、易维护和页面简单等特点。
2.1 Python简介
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。Python 属于一个高层次的脚本语言,以解释性,编译性,互动性和面向对象相结合。在设计上相比其他语言,它更具有特色语法结构,很强的可读性。
Python语言之所以如此广泛的被使用是由其自身的优势所决定的,首先它的兼容性非常的好可以实现跨平台的使用,互联网络的出现使人们进行信息传递有了更多的方法,使信息资源得到了最大限度的共享,人与人之间的交流变得更加方便,打破了地域对信息传递的束缚,为人们生活带来了极大的便利。虽然Python语言在当今已经发展非常 成熟,但是它并不是完美无缺的,需要研发人员不懈的努力来使其更加完善。
2.2 Django框架
Django是一种开源的大而且全的Web应用框架,是由Python语言来编写的。他采用了MVC模式,Django最初是被开发来用于管理劳伦斯出版集团下的一些以新闻为主内容的网站。一款CMS(内容管理系统)软件。并于 2005 年 7 月在 BSD 许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。
Django是Python语言中的一个web框架,并遵循MVC设计。Python语言中主流的web框架有Django、Tornado、Flask 等多种,Django相较与其它WEB框架,其优势为:大而全。Django的主要目的是简便、快速的开发数据库驱动的网站。接下来介绍Django的优点:
- 路由配置(URLConf):Django的URL设置更加灵活优雅,看似复杂难懂,但使用的都是简单的正则表达式,你可以随心所欲的创造优美的、简洁的、专业
的地址。
- 模板(Template):模板可以理解为承载数据的工具,为了将数据从视图中分离出来,通过各种各样的标签来进行数据的传输。Django的模板融入了面向对象中继承的思想,提高了复用减少冗余代码。
- 视图(View):视图就是views.py中的函数,也就是逻辑代码,为了将URL和视图关联起来,用到了上述的URLConfs,URLConfs将URL模式映射到视图中,每个视图有两件事是必须要做的:返回一个包含被请求页面的HttpResponse对象,或者抛出一个异常。
- 后台管理系统(Django-Admin):Django提供的一个基于Web的管理工具。Django-Admin来自django.contrib也就是Django的标准库,默认被配置好,只需要激活启用即可,它的优势在于可以快速对数据库的各个表进行增删改查,一行代码即可管理一张数据库表,相比于手动后台1个模型一般需要4个urls,4个视图函数和4个模板,可以说Django完成了一个程序编写的大部分重复工作,并且对于图书管理这种以管理工作为重系统来说,极度契合。
- 应用(Application):当项目规模过大时,难免会产生目录过长,文件过多的问题,Django理念中的App可以将项目相对独立的进行开发,插拔的工作方式和独立性让开发者废弃的App即使删除也不会影响整体,是一种不可多得的理念。
因为本次使用的Python版本为3.6.4,低版本的Django不支持Python3,故此次使用的Django版本为3.2.12。
2.3 PyCharm简介
PyCharm是JetBrains公司开发的一款Python集成开发环境,它提供了很多便利于开发者的功能,比如调试、语法高亮、代码跳转、智能提示、自动补全等。除此之外Pycharm还提供了一些支持Web框架的高级功能,适合此次机票预订系统的开发。
2.4 MySQL简介
作为当下比较流行的MySQL数据库管理系统,它有较高的安全性和可靠性,储存空间大,可以对系统中所有用户 的数据进行储存更新。MySQL数据库存储功能强大,稳定性好,安全系数高,受到了越来越多的软件开发者的青睐。 数据库极大的便利了数据的存储,MySQL数据库能够实现数据库被多个用户端同时使用,实现数据交互,为用户提供 便利,是一个非常有利的方面。
所以,对于整个系统的设计与实现来说,确定一个优秀的数据库管理系统具有非常重大的意义。因为数据库它 不仅仅是用于对数据的储存,它还有关于约束条件和触发器等功能的设计,因此,本次程序开发的首要选择就是一 个拥有简洁明了的数据库界面和简单易上手、有多线程交互的数据库管理系统。
2.5小结
本章详细的介绍了开发机票预订系统所需要的技术与工具,工欲善其事必先利其器,对于技术和工具了解的越多越清晰,才会在开发过程中如鱼得水。
第3章 系统分析
为满足用户的需求,本章分析系统开发的可行性,将从技术和操作等方面来判断,然后通过需求分析、系统流程分析来确定机票预订系统的功能。
3.1 技术可行性分析
机票预订系统在使用电脑和信息分析系统这些设计没有硬性要求,电脑只要是可以正常使用的话,那么代码和页面设计就是可行的。要求高的主要是服务器,平台上传服务器一定要选择性价比高和安全性高的,打开网站一定要顺滑不卡顿,所以硬件也是可行的[2]。
所以,从以上可行性分析可得,本系统的开发使没有问题的。
3.2 操作可行性分析
将根据管理系统中的用户体验和管理员的效率来分析该措施的可行性。管理人员和用户都可以通过简单的操作登录进对应的系统页面,方便用户搜索业务信息和管理人员管理数据,不需要特别懂电脑的人也可以轻松访问系统模块。该系统已完全投入使用。
3.3 需求分析
本机票预订系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了用户和管理员这两者的需求。操作简单易懂,合理分析各个模块的功能,尽可能优化界面,让用户和管理员能使用环境更好的系统。
对比要实现的功能来分析出用户的需求,可以让用户在线对相关信息进行添加、修改、查看、删除,这不仅满足了用户的需求,还大大的节省了时间。因此,管理员的需求也应当考虑一下,尽可能提高管理员的工作效率。
3.4 项目设计目标
本防系统采用MySQL数据库和Python语言,Django框架进行开发而成,极大程度上的保证了系统的稳定性。
3.4.1 关于系统的基本要求
(1)功能要求:管理人员可以对个人中心、用户管理、航班信息管理、旅游景点管理、酒店信息管理、系统管理、订单管理等功能进行管理 [3]。用户登录系统后,可以在线浏览航班信息、旅游景点、酒店信息、系统公告,并进行在线选择、预订航班信息等;用户还可以进行在线咨询客服、管理个人信息等。
(2)性能:可以准确无误的在不同的操作系统中登录到用户或者管理员的相应界面进行轻松的操作[4]。
(3)环境要求:支持不同的操纵系统和不同的平台,可用于Windows系列、Vista系统等多种操作系统[5]。
3.4.2开发目标
本机票预订系统的主要开发目标如下:
(1)减少后台管理人员的工作量,对用户的信息进行系统的管理;
(2)必须要方便快捷的查看搜索信息并管理信息;
(3)用户是具有多样性的,所以界面要设置的简单明了,操作更要方便快捷。
3.5 系统流程分析
系统登录流程图如图所示3-1所示。
图3-1 系统登录流程图
用户和管理员可以添加信息,内容没有问题之后按下确定键就添加成功了。添加信息流程图如图3-2所示.
图3-2 添加信息流程图
用户可以选择把自己发布的信息删掉,选择要删除的信息,确认之后,删除信息的操作就完成了。删除信息流程图如图3-3所示。
图3-3 删除信息流程图
3.6 本章小结
本章主要是对机票预订系统的可行性分析和所要实现的功能进行分析,在对一系列的系统可行性分析之后,又详细的讲述了项目的目标与原则,让人们深刻的了解机票预订系统的设计思想,之后重点对登录模块、添加模块和删除模块的流程进行了详细的图文介绍。
第4章 系统设计
本章主要讲述的是机票预订系统的设计开发结构,简单介绍了开发流程与数据库设计的原则以及数据表的关系结构图,并且详细的展示了数据表的内部结构信息与属性。
4.1 系统体系结构
系统启动后,在登录界面,输入正确的账号密码,选择进入管理员界面或用户界面,管理员界面是用来管理页面与用户信息,用户界面可以正常的使用,并对个人信息、登录密码、航班信息、旅游景点、酒店信息、系统公告等进行份内的操作,系统登录结构图如图4-1所示。
图4-1 系统登录结构图
管理员模块属于是网站的后台,进入之后有大量的管理员功能,管理员也可以使用用户模块的功能,为了维护网站的稳定与页面的布局,将管理员模块的功能详细化后可以使用系统管理对页面进行布局修改,可以发布公告提示用户规范,用户模块只可以对个人信息、登录密码、航班信息、旅游景点、酒店信息、系统公告等进行管理等,并且进行在线选座、预订航班信息等,机票预订系统总体结构图如图4-2所示。
图4-2 机票预订系统总体结构图
4.2 开发流程设计
系统的开发流程设计简单的介绍了开发过程,先对任务书进行分析,根据要实现的功能对各个模块进行开发,之后再对模块一一进行测试,测试成功后将模块整合再测试整体功能,完善整体结构[6]。开发系统流程图如图4-3所示。
图4-3开发系统流程图
4.3 数据库设计原则
数据库设计之后,根据数据库关系,可以更加清晰地了解到数据库结构,每一个数据表之间的关系,再创建数据表。快速更改和查询对应的信息,有了数据库就不用在程序和代码中寻找。
分析机票预订系统的数据结构后,在E-R图中分析管理员登录时的模式,需要输入用户名与密码,管理员信息E-R如图4-4所示。
图4-4 管理员信息E-R图
用户E-R图如图4-5所示。
图4-5用户E-R图
航班信息E-R图如图4-6所示。
图4-6航班信息E-R图
系统公告E-R图如图4-7所示。
图4-7系统公告E-R图
旅游景点实体E-R图如图4-8所示。
图4-8旅游景点E-R图
4.4 数据表信息
在关系数据E-R图中,分析并创建数据表,数据表用来记录信息,数据表关系由多个数据表组成,下面介绍的是数据表各个字段信息如下表所示。
表4-1:酒店信息表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiudianmingcheng | varchar | 200 | 酒店名称 | ||
leibie | varchar | 200 | 类别 | ||
xingji | varchar | 200 | 星级 | ||
jiudiantupian | varchar | 200 | 酒店图片 | ||
jiudiandizhi | varchar | 200 | 酒店地址 | ||
fangjianleixing | varchar | 200 | 房间类型 | ||
jiage | float | 价格 | |||
fuwudianhua | varchar | 200 | 服务电话 | ||
jiudianjieshao | longtext | 4294967295 | 酒店介绍 |
表4-2:航班信息表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
checi | varchar | 200 | 车次 | ||
fengmian | varchar | 200 | 封面 | ||
qifeidi | varchar | 200 | 起飞地 | ||
mudedi | varchar | 200 | 目的地 | ||
qifeishijian | datetime | 起飞时间 | |||
zongshizhang | varchar | 200 | 总时长 | ||
tujingzhandian | longtext | 4294967295 | 途径站点 | ||
goupiaoxuzhi | longtext | 4294967295 | 购票须知 | ||
price | float | 价格 | |||
number | int | 座位总数 | |||
selected | longtext | 4294967295 | 已选座位[用,号隔开] |
表4-3:用户信息表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
shoujihao | varchar | 200 | 手机号 | ||
shenfenzheng | varchar | 200 | 身份证 | ||
money | float | 余额 | 0 |
表4-4:在线客服表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
adminid | bigint | 管理员id | |||
ask | longtext | 4294967295 | 提问 | ||
reply | longtext | 4294967295 | 回复 | ||
isreply | int | 是否回复 |
表4-5:订单表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | hangbanxinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | varchar | 200 | 商品图片 | ||
buynumber | int | 购买数量 | |||
price | float | 价格 | 0 | ||
discountprice | float | 折扣价格 | 0 | ||
total | float | 总价格 | 0 | ||
discounttotal | float | 折扣总价格 | 0 | ||
type | int | 支付类型 | 1 | ||
status | varchar | 200 | 状态 | ||
address | varchar | 200 | 地址 | ||
tel | varchar | 200 | 电话 | ||
consignee | varchar | 200 | 收货人 | ||
remark | varchar | 200 | 备注 | ||
logistics | longtext | 4294967295 | 物流 |
表4-6:系统公告表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-7:旅游景点表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jingdianmingcheng | varchar | 200 | 景点名称 | ||
jingdianfenlei | varchar | 200 | 景点分类 | ||
jingdiantupian | varchar | 200 | 景点图片 | ||
jingdiandengji | varchar | 200 | 景点等级 | ||
chengshi | varchar | 200 | 城市 | ||
jutidizhi | varchar | 200 | 具体地址 | ||
menpiaojiage | int | 门票价格 | |||
jingdianjieshao | longtext | 4294967295 | 景点介绍 | ||
kaifangshijian | varchar | 200 | 开放时间 | ||
zhuyishixiang | longtext | 4294967295 | 注意事项 |
表4-8:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 商品id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 名称 | ||
picture | varchar | 200 | 图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) | 1 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
4.5 本章小结
本章具体讲述了系统的大体结构,主要包括用户、管理员两大系统模块,使其各个功能简洁明了。同时对数据库的设计原则进行分析,从而提高了系统的效率。
第5章 系统实现
本章讲述的是系统对各个模块功能实现的效果图,对前台、管理员功能和用户功能分别进行了展示,页面布局清晰,操作简单快捷,基本实现了对用户和管理员对系统的需求。
5.1系统前台功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到机票预订系统的导航条、轮播图和推荐信息等。系统首页界面如图5-1所示:
图5-1 系统首页界面