django的建立和使用——基于python的gis开发与应用

Django框架

照理说,做到pyinstaller那里就够了。但是时代在进步,桌面端GIS在走下坡路,而webgis正在兴起。所以我为我的GIS配备了webgis,跟紧时代的步伐。

4.4.1 事先说明

项目(Project)是Django工具创建出来的一个网站的文件夹。其在初始状态下,会有一些默认文件存在其中,以供之前创建出来的网站开发和运行使用。该文件夹的名称就是所取的项目名称。

应用(Application,App)是存放于之前创建的项目文件夹里的,其可以被设置具有相对独立的一个个网站功能(如博客功能、网页展示功能等等),是由一个个的子文件夹组成的,其中包含所创建网站各个功能的代码文件、配置文件等等。

4.4.2 Django和webGIS

Django是一款开放源代码的Web应用框架,由python编程语言写成。它具有非常强大的应用程序支持功能,是编程界里大家公认最出名的python应用程序框架产品。

我将Django引进来是有原因的。传统的GIS一般基本上都是以平台软件主导和推动。但是渐渐的,webGIS走进了人们的视线里。webGIS——网络地理信息系统——是传统的GIS在网络上的延展延伸和发展,在web网上工作的GIS,其不仅仅具有传统GIS的特点,同时还具有在Internet上地理信息发布、共享和交流协作的基础,这是传统gis所没不具备的。Webgis是gis界的大势所趋。要想进军webgis,前提就是需要一个web框架,所以我选择了Django。

在python里跟Django有得一拼的Web框架还有:Flask、Sanic、Tornado。

4.4.3 网站(创建项目)

1.创建项目

创建新项目需要在cmd——命令提示符里通过django-admin.py工具来执行去实现。

在命令提示符里指定路径下输入django-admin startproject __(自创文件名),然后就可以在该指定路径下找到那个生成的新子文件夹(这个新的子文件夹就是要创建出来的网站的根路径,由名为项目名称)。可看下图4.21是如何创建网站项目:

django的建立和使用——基于python的gis开发与应用

图4.21 创建网站项目

新项目生成情况,除了生成沁园春文件夹外,还自动安装了manage.py工具(该工具提供了开发服务器启动、应用的建立等功能)。

内部自动生成的一些项目文件,如下面所示:

沁园春/                #新建网站项目名称   

manage.py          #manage.py工具

沁园春/            #新建网站的代码开发包名称

__init__.py      #该文件说明网站项目 是个应用程序包

settings.py      #该文件设置本网站运行的一些参数

urls.py    #该文件是用来提供用户访问URL列表清单

wsgi.py    #该文件是提供符合WSGI标准的Web服务器的访问接口

2.启动开发服务器

项目创建之后,需要通过启动Django开发服务器来验证一下Django安装是否成功。这需要在命令提示符里输入如下命令来执行:

python manage.py runserver

当显示如下图4.22的结果是,这就说明开发服务器启动成功。我之所以选择Django,是因为Django开发服务器是自带的,这可以让我避免下载安装如Apache、IIS等类似的Web服务器就可以直接进入网站功能开发。

django的建立和使用——基于python的gis开发与应用

 

图4.22 启动服务器

启动开发服务器之后,随便在一个浏览器里输上http://127.0.0.1:8000/,随后可以在该浏览器里看到如下图4.23所示那个开发服务运行成功的界面。

django的建立和使用——基于python的gis开发与应用

 

图4.23 启动成功

注意:在Django里,运行所创建开发网站之前,必须先在命令提示符里启动该开发服务器,否则会使运行代码报错。如果将命令提示符关闭,该服务器会自动退出,所以这样一来,每次进入操作系统,需要先运行该开发服务器。

 

4.4.4 网站(连接数据库)

网站应用功能的开发,在绝大多数的情况下是离不开了数据库的作用的。

1.设置settings.py

在已经创立的项目 文件夹里打开settings.py文件,找到DATABASES列表对象(所有与数据库相连接的设置都会在这里进行)。

由于在最新版本里的Django框架里是默认数据库是与sqlite数据库系统相互建立连接(旧版本里的Django提供的数据库是为syncdb),再者目前仅限于单机上操作,所以我没有再下载或使用其它数据库。其参数设置如下:

‘ENGINE’: ‘django.db.backends.sqlite3’       #数据库系统是为sqlite3

‘NAME’: os.path.join(BASE_DIR,’db.sqlite3’)   #数据库名是为sqlite3

2.安装数据库

目前是默认在sqlite数据库系统的情况下,所以选择了Django自带的数据库内容安装包。需要在命令提示符里输入并执行下面命令:

python manage.py migrate

若显示结果如下图4.24所示,则表明安装成功。

django的建立和使用——基于python的gis开发与应用

图4.24 安装成功

执行结束后在 路径下就凭空生成了一个db.sqlite3数据库文件。

4.4.5 网站(创建应用)

项目创建已经完成了数据库系统的安装、数据库连接的参数设置配置和安装数据库内容包,接下来需要开发网站的应用功能。

Django应用程序框架突出了“基础框架+修改”的开发思路。这意味着可以借助Django提供的Web应用程序基础代码,在其上进行做增量开发,这样不仅可以大幅减少开发工作量,还可以提高开发效率和质量。

1.安装

在命令提示符里输入执行以下命令:

python manage.py startapp demo

新生成demo应用程序包,其中内容如下所示:

demo/

__init__.py      #用这个来告诉python这是一个应用程序包

admin.py

apps.py

models.py          #数据模型

tests.py            #单元测试

views.py           #视图

migrations/

__init__.py

 

 

2.修改view.py

在demo文件夹里打开view.py文件,然后在里面输入相关代码。

3.建立URL映射关系

在沁园春\urls.py中新增’demo.urls’:

from django.contrib import admin

from django.urls import path

from django.conf.urls import url, include

 

urlpatterns = [

path(‘admin/’, admin.site.urls),

url(r’^demo/’, include(‘demo.urls’))

]

然后在demo\下新建一个urls.py文件,代码如下:

from django.conf.urls import url

from . import views

 

urlpatterns = [

url(r’^bar/$’, views.ChartView.as_view(), name = ‘demo’),

url(r’^index/$’, views.IndexView.as_view(), name = ‘demo’),

]

4.设置settings.py文件

做完之上操作之后,需要通过代码告诉Django框架,已经建立一个名为demo的web应用网站。打开沁园春\下的settings.py文件,然后在INSTALLED_APPS列表底部增加一行代码,如下图4.25所示:

‘demo’,

django的建立和使用——基于python的gis开发与应用

 

图4.25 settings.py文件内容

在根目录里新建一个文件夹,名为templates,再在里面新建一个HTML,命名为index。

5.访问该网站

在完成相关代码,再次在cmd对应路径输入并执行下列命令,启动开发服务器:

python manage.py runserver

这样就可以显示界面。

4.4.6 网站(后台管理)

继续在浏览器里输入这个新网址:http://localhost:8000/admin/。出现了一个网站后台管理登录界面。

其登陆界面需要输入用户名和密码。因此在cmd里执行如下命令:

Python manage.py createsuperuser

Username: admin

Email address: [email protected]

Password: adm123...

Password(again): adm123...

Superuser created successfully.

超级权限设置成功后,再次在登录界面输入用户名和密码,即可进入后台。