科研训练结题论文
题目:基于 Django 的自来水泵站设备
状态监控与管理系统的开发
小组成员:徐文文 管笠森 沈 莉
学院专业:电光学院通信工程
指导老师:王韬
2013 年 9 月 1 日
基于 Django 的自来水泵站设备状态监控与管理系统的开发
摘要
随着自动化控制技术的日益普及,设备监控逐渐由人工转为自动
控制,本课题我们开发一个基于 Django 技术的网站,用于自来水泵
站设备状态监控与管理系统,系统接收来自各个泵站站点的检测设备
检测到的各状态信息(如水压、流量),在 B/S 架构下利用 AJAX 技术
实现状态数据的异步更新,利用 jQuery 插件实现报表显示,具有管
理权限的用户能够在 B/S 架构下实现远程的设备控制,在泵站站点发
生故障时能够实时的报警以及故障排除消息提示等功能。
本课题的研究特色是使用新型的 Web 开发技术,利用模板函数
实现预期的功能。另外实现用户权限的识别,对于不同的用户级别提
供不同的用户服务,对具有管理资格的用户提供站点管理和用户管理
的功能。
关键字:Django B/S 架构 AJAX jQuery Web 模板函数
2
基于 Django 的自来水泵站设备状态监控与管理系统的开发
目录
第一章 绪论………………………………………………………………………………… …5
1.1 研究背景…………………………………………………………………………………5
1.2 研究意义…………………………………………………………………………………5
1.3 国内外研究现状…………………………………………………………………………5
1.4 主要工作和创新点………………………………………………………………………5
第二章 开发工具相关技术介绍……………………………………………………………6
2.1 python 技术简介…………………………………………………………………………6
2.2 Django 框架简介…………………………………………………………………………7
2.3 Django 的特点……………………………………………………………………………7
第三章 功能分析………………………………………………………………………………8
3.1 自来水泵管理系统的设计……………………………………………………………8
3.2 设计框图…………………………………………………………………………………8
第四章 系统设计………………………………………………………………………………9
4.1 Django 框架的建立………………………………………………………………………9
4.1.1 建立 Project……………………………………………………………………………9
4.1.2 创建应用………………………………………………………………………………9
4.2 Model 的设计……………………………………………………………………………10
4.3 设置数据库………………………………………………………………………………11
4.3.1 使用 sqlite …………………………………………………………………………11
4.3.2 创建表………………………………………………………………………………11
4.4 静态文件 static 的设置…………………………………………………………………12
4.5 创建模板………………………………………………………………………………12
4.6 用户登录功能的实现…………………………………………………………………12
4.6.1 用户模板……………………………………………………………………………12
4.6.2 url 和 view 函数………………………………………………………………………13
4.7 动态更新功能的实现…………………………………………………………………13
4.7.1 模板语言……………………………………………………………………………13
4.7.2 url 和 view 函数……………………………………………………………………15
3
基于 Django 的自来水泵站设备状态监控与管理系统的开发
4.8 用户管理功能的设计…………………………………………………………………16
4.8.1 模板语言……………………………………………………………………………16
4.8.2 url 和 view 函数……………………………………………………………………17
4.9 站点管理功能的设计…………………………………………………………………17
4.10 报表功能的设计………………………………………………………………………17
4.10.1 模板语言……………………………………………………………………… …17
4.10.2 url 和 views 函数……………………………………………………………………20
第五章 调试与成果展示……………………………………………………………………21
5.1 用户登录界面…………………………………………………………………… ……21
5.2index 监测站点…………………………………………………………………………21
5.3 报表分析………………………………………………………………………21
5.4 站点管理………………………………………………………………………22
5.5 用户管理………………………………………………………………………22
第六章 总结与展望…………………………………………………………………22
参考文献……………………………………………………………………………23
致谢………………………………………………………………………………… 23
4
基于 Django 的自来水泵站设备状态监控与管理系统的开发
第一章 绪论
1.1 研究背景
传统 Web 开发方式常常需要编写繁琐乏味的重复性代码,不仅页面表现与
逻辑实现的代码混杂在一起,而且代码编写效率不高。对于开发者来说,选择一
个功能强大并且操作简洁的开发框架来辅助完成繁杂的编码工作,将会对开发效
率的提升起到很大帮助。从现今的开发技术来说,这样的开发框架并不少见,需
要做的仅是从中选出合适的 Web 开发框架。
自分层结构的 Web 设计理念普及以来,选择适合的开发框架无疑是项目成
功的关键。在动态语言领域,Python、Ruby、Groovy 等语言在 Web 开发中的
应用日益广泛。近年来开发的基于 Python 语言 Web 框架 Django,以其新颖简洁
的开发模式和巨大的发展潜力,逐渐赢得大量开发者的青睐。本课题我们利用
Django 开发自来水泵检测和管理开发系统,选择 Python 框架 Django 作为 Web 开发
框架的首选,究其缘由,是看中了 Django 新颖简洁的开发模式和巨大的发展潜力。
1.2 研究意义
供水管网系统是整个自来水公司水源合理调度使用的关键环节,一般采取人
工抄表、电话报数、现场手动操作的原始调度方法。原始调度存在收集信息数量
少、处理慢、传递迟、人工效益成本高、人工劳动强度相对比较大,整个的调度
处于原始阶段。遇上爆漏及其他事故,整个的调水系统反映迟钝,导致因缺水损
失扩大的现象。目前的供水管网测点系统进行信息化改造日益迫切。
供水管网测点遍布城市的各个角落,地理位置非常分散,管网测点数据的采
集和控制非常不方便。另一方面对于数据的采集与控制功能要求稳定,安全性要
求较高。检测自动化控制系统的建成将有效的解决问题。本课题开发基于 Django
框架的自来水泵管理系统,系统接收来自各个泵站站点的检测设备检测到的各状
态信息(如水压、流量),并能实现状态数据的异步更新和报表显示,具有管理
权限的用户能够实现远程的设备控制,在泵站站点发生故障时能够实时的报警以
及故障排除消息提示等功能。该系统具有不受地理环境、气候等因素限制,监测
范围广,运行成本低,实时性好等优势,应用前景广阔。该监测系统运行后可节
约水务部门对管网的监控管理成本,降低劳动强度,提高城市生活、生产用水质
量,确保居民满意,使自来水的营业管理步入智能化科学化,从而促进智慧城市
的建设。
1.3 国内外研究现状
Django 目前的最新发行版本是 1.5.2 版,Django 开发框架的出现,使得 Web
繁杂的开发工作变得简洁有序、赏心悦目。随着 Django 开发框架的不断发展,
更多新的特性将逐步被添加到框架体系中来。可以不夸张的说,Django 已经从
ROR 的潜在竞争者,逐渐成长为可以与之针锋相对的 Python 框架。如果说与 Ruby
框架 ROR 的差距,或许 Django 目前最缺少的还是 ROR 那庞大的用户群体。
1.4 主要工作和创新点
1、基于 Django 的 Web 开发
本课题我们选用了 Django 技术来实现网站的开发,Django 是一个开放源代
5
基于 Django 的自来水泵站设备状态监控与管理系统的开发
码的 Web 应用框架,由 Python 写成。Django 拥有完善的模板机制、对象关系
映射机制以及用于动态创建后台管理界面的功能,利用 Django,可以快速设计
和开发具有 MVC 层次的 Web 应用,在 Django 的框架下,我们花费较少的时
间即可构建和维护基本的 Web 应用。
2、在 B/S 架构下利用 AJAX 技术实现状态数据的异步更新
B/S 结构(Browser/Server,浏览器/服务器模式),是 Web 兴起后的一种网
络结构模式,Web 浏览器是客户端最主要的应用软件。这种模式统一了客户端,
将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
利用 JavaScript 和 XML 技术实现状态数据的异步更新,能在不更新整个页面的前
提下维护数据。这使得 Web 应用程序更为迅捷地回应用户动作,并避免了在网
络上发送那些没有改变过的信息。在服务器和浏览器之间交换的数据大量减少,
结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户
端机器上完成,所以 Web 服务器的处理时间也减少了。
3、利用 jQuery 插件实现报表显示
jQuery 是一套跨浏览器的 JavaScript 库,简化了 HTML 与 JavaScript 之间的操
作。使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便
地为网站提供 AJAX 交互。jQuery 还有一个比较大的优势是,它的文档说明很全,
而且各种应用也说的很详细,同时还有许多成熟的插件可供选择。
4、站点管理和用户管理
站点管理和用户管理都只有用户以超级用户的身份登录时才能看得见,
Django 自带了一个用户授权认证系统,在用户登录所对应的 login 函数中有一个
对用户名的判断,当用户民是超级用户的时候,返回的主页便有用户管理和站点
管理的链接,如果是普通用户则返回的页面就没有用户管理和站点管理的链接。
第二章 开发工具相关技术介绍
2.1 python 技术简介
在自动化测试工具开发过程中,主要应用 python 语言,其中 Django 也是
由 Python 语言编写。Python 语言是一种面向对象、直译式计算机程序设计语言,
python 语言的语法简捷而清晰,且具有丰富和强大的类库。python 通常被称为
胶水语言,因为它能够很轻松的把其他语言和各种模块联结在一起。Python 语
言有很强的设计语法,这对有不好编程习惯的开发人员是一个很好的约束,例如
if 语句的下一行不向右缩进不能通过编译。这样也有意的强制开发人员养成良好
的编程习惯。同时 Python 语法简单,内置有高级数据结构,如字典、列表等,
使得使用起来很简单。它还支持交互式方式的运行、图形方式运行。它拥有众多
的编程界面和支持各种操作系统平台,Python 语言与其它的脚本语言相比,具
有如下特点和优势:
(1)简单易学,阅读一个编写良好的 Python 程序,就像读一篇英语文章,能够更
专注于程序的内容,而不是为了去弄清楚语言的本身,这种及其简单的语法更容
易上手。
(2)解析性强,编译型语言(如 C 语言或 C++语言)需要通过编译器转换成计算机语
言)(即二进制代码 0 和 1),把程序从硬盘复制到内存中运行。而 Python 语言编写
的程序则不需要这种二进制的转换,直接通过 Python 解释器转换成字节码,然
后再翻译成机器语言来运行。
6
基于 Django 的自来水泵站设备状态监控与管理系统的开发
(3)移植性好,由于 Python 的开源特征,它几乎可以在所有操作系统和平台上使
用,如 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、
AS/400、BeOS、0S/390、z/OS、Palm0S、QNX、VMS、Psion、PlayStation、Sharp
Zaurus、WindowsCE 以及 pocketPC
(4)扩展性强,由于 Python 语言是动态解析的,所有程序执行的速度比编译型语
一言的解析速度慢,如果希望对某些代码保密,或者使某段代码运行得更快,可
以用 C 语言或 C++语言来编写,然后在 Python 编写的程序中使用它们。
2.2 Django 框架简介
Django 是一个基于 MVC 构造的框架。但是在 Django 中,控制器接受用户输
入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板
(Template)和视图(Views),称为 MTV 模式。它们各自的职责如下:
模型(Model),即数据存取层
处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数
据之间的关系等。
模板(Template),即表现层
处理与表现相关的决定:如何在页面或其他类型文档中进行显示。
视图(View),即业务逻辑层
存取模型及调取恰当模板的相关逻辑,模型与模板之间的桥梁。
从以上表述可以看出 Django 视图不处理用户输入,而仅仅决定要展现哪些
数据给用户,而 Django 模板仅仅决定如何展现 Django 视图指定的数据。或者说,
Django 将 MVC 中的视图进一步分解为 Django 视图和 Django 模板两个部分,分
别决定 “展现哪些数据” 和 “如何展现”,使得 Django 的模板可以根据需要
随时替换,而不仅仅限制于内置的模板。
至于 MVC 控制器部分,由 Django 框架的 URLconf 来实现。URLconf 机制是
使用正则表达式匹配 URL,然后调用合适的 Python 函数。URLconf 对于 URL 的规
则没有任何限制,开发者完全可以设计成任意的 URL 风格,不管是传统的,RESTful
的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表
的读、写、删除、更新的操作。在写程序的时候,只要调用相应的方法就行了,
感觉很方便。程序员把控制层东西交给 Django 自动完成了,只需要编写非常少
的代码完成很多的事情,所以它比 MVC 框架考虑的问题要深一步。因为我们程
序员大都写程序在控制层,现在这个工作交给了框架,仅需写很少的调用代码,
大大提高了工作效率。
2.3 Django 的特点
Django 拥有完善的模板机制、对象关系映射机制以及用于动态创建后台管
理界面的功能,利用 Django 可以快速设计和开发具有 MVC 层次的 Web 应用。
在实体映射方面,Django 的对象相关映射机制帮助开发者在 Python 类中灵活
定义数据模型,并且 Django 具有功能丰富的动态数据库访问 API,可以大幅度简
化书写 SQL 语句的繁杂工作。同时 Django 支持包括 Postgresql,MySql,Sqlite,
Oracle 在内的多种后台数据库。Django 的 URL 分发设计的十分简洁美观,不会
在链接中产生一大串杂乱且难以理解的字符。使用 Django 可扩展的内置模板,
可以将模型层、控制层与页面模板完全独立开来进行编码。Django 还具有自己
的 Cache 系统,如果需要,也可以根据开发者的要求嵌套其他的 Cache 框架。
7
基于 Django 的自来水泵站设备状态监控与管理系统的开发
第三章 功能分析
3.1 自来水泵管理系统的设计
本课题的研究目标是开发一个动态的管理网站,有如下功能:用户登录,用户管理,站
点管理,实时动态的更新各个站点的数据,以及查看站点的历史记录。以便自来水厂的管理
员能够及时发现某个出现问题的站点,采取相应的措施。
3.2 设计框图
用户登录
普通用户
超级用户
站点监测
与更新
报表
查询
站点
管理
用户
管理
第四章 系统设计
4.1 Django 框架的建立
4.1.1 建立 Project
在 python 以及 django 正确安装后,我们首先打开 DOS 命令窗口,进入我们想要保存项
目文件的文件夹,然后输入如下命令:django-admin.py startprojectmysite,该命令中 mysite
便是项目的名称。进入 mysite 文件夹,输入 dir 命令,我们会发现,建立项目的时候生成了
四个文件,如下图所示:
8