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是如何创建网站项目:
图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服务器就可以直接进入网站功能开发。
图4.22 启动服务器
启动开发服务器之后,随便在一个浏览器里输上http://127.0.0.1:8000/,随后可以在该浏览器里看到如下图4.23所示那个开发服务运行成功的界面。
图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所示,则表明安装成功。
图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’,
图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.
超级权限设置成功后,再次在登录界面输入用户名和密码,即可进入后台。