民营科技2018年第7期信息科学基于GeoDjango的WebGIS开发实践
任永强1李婷2刘亚静1
(1.华北理工大学矿业工程学院,河北唐山063009;2.华北理工大学外国语学院,河北唐山063009)
1概述
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,也可以很方便的开发出自己的工具包,这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
GeoDjango是Django一部分。从Django1.0起正式成为一个分支,基于Django的优良设计,使用GeoDjango可以做到WebGIS的快速开发。GeoDjango没有WMS,需要用其他方式获得地图服务。2环境配置
本文介绍的是开发应用的软件,所用的是在linux下进行基于GeoDjango的WebGIS开发所应用的典型软件。
linux的发行版数量庞大,大小有数百种。每种都有其设计的特定目标,本文选用Archlinux作为开发和运行
服务的系统。主要包括以下几个软件:Python;GeoDjango;数据库;依赖库。其中依赖库包括Psycopg2(用来连接postgresql和Python的适配器);GEOS (是一个几何形状的拓扑关系操作实用库);Proj.4(地图投影库);PostGIS(是PostgreSQL的空间数据引擎,用来使PostgreSQL支持对空间数据格式的操作);GDAL(处理栅格空间数据的GIS库)。尽量按照文中列出的顺序来进行软件安装,以避免出现一些意外。
3开发实战
本项目是围绕Django的一个分支GeoDjango开展的,工作首先要从这里开始。在开发一个Django应用时基本流程是这样的:1)建立项目,设置。2)建立新应用。3)编写代码:建立模型(models. py);url设计(urls.py);视图(views.py);模板系统(template)。4)调试。5)添加新应用。
3.1建立新项目。在工程目录下创建一个Django项目,首先回到跟目录:
$cd~
然后创建项目,
$django-admin.py startproject WebGIS
这样在工程目录下就有一个名为WebGIS的文件夹了,在后面部分都将在这个文件夹下工作。先熟悉一下django自动创建的一些文件。
django网站
首先进入这个目录
$cd WebGIS
$ls-al
可以看到如下文件
manage.py对django工程进行管理的程序
settings.py全局设置的文件
urls.py管理url映射的文件
可以测试django安装和这个项目是否有问题:
$python manage.py runserver
这时如果一切顺利的话,在浏览器地址栏输入http://127.
0.0.1:8000/
如果能看到一个欢迎页面,这证明django正确安装而且工程正确创建。注意:本文中启动的这个服务器是django自带的服务器,是专门用来调试的。在实际应用时最好使用更专业的web服务器。
3.2创建应用程序。在工程被创建后,将创建一个简单的应用来演示django开发的快捷。
$django-admin.py startapp blog
这将在WebGIS文件夹内创建一个名为blog的文件夹,这就是我们的应用。我们进入这个文件夹,编辑文件/blog/models.py from Django.db import models
class Artical(models.Model):
title=models.CharField(max_length=20,unique=True)
content=models.TextField()
模型的主要意义在于构造数据结构,以利用django提供的一个数据库API自动完成数据处理工作,省去了大量代码。
对比其他的web开发,如java,。在数据库的操作上都需要自己进行SQL的编写。而django把这一过程进一步抽象出来,把最常用的数据库操作进行了自动化处理,显著提升开发效率。
4结论
使用GeoDjango开发WebGIS的优势:1)高级Web框架。Django把常见的Web开发的问题抽象出来并提供了频繁编程任务的捷径。2)提供快速开发。Django可以极大程度提高开发速度,由于采用Python语言,不但减少代码量,更使代码结构清晰,容易理解。3)灵活性好。Django提供了大量减少劳动的功能,但在需要特定应用的时候又十分灵活,容易进行扩展和改造。4)干净实效的设计。Django严谨的维护,干净的设计,它所有的代码让开发的Web程序遵循最佳实践。
参考文献
[1]李迎辉.Python开发Rails框架-Django框架介绍[J].程序员,2006(5):129.
[2]王亚卿,方龙.浅析Python在地图处理中的运用[J].华东森林经
理,2008(6):155.
[3]郭力子.基于开源的Web开发框架-ZOPE/Python[J].计算机时
代,2008(4):21.
摘要:互联网发展和GIS应用环境的拓宽,WebGIS的开发方式越来越先进,各种Web框架都逐渐引入了对GIS的支持。进行快速的WebGIS开发,成为一个重要的话题。基于Python的Web开发框架Django拥有快速开发的能力,Django的WebGIS拓展
GeoDjango也就成为快速开发WebGIS的一个良好选择。就GeoDjango开发环境的建立,开发流程以实例的方式进行实战。
关键词:Linux;WebGIS;Python;Django;GeoDjango
中图分类号:TP311.52文献标识码:A文章编号:1673-4033(2018)07-0134-01 134

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。