Django框架简介
Django是Python最有代表性的一个网络框架。使用Django可以方便地实现一个功能全面、管理简便的网站或者APP后端。openstack中用来提供图形化界面服务的Dashboard就是利用Django框架进行开发,所以在介绍openstack dashboard开发之前,通过本篇文章针对Django应用开发进行讲解。
Django的MTV(模型-模板-视图)模式本质上和一般MVC(模型-视图-控制器)是一样的。其中M代表模型(Model),负责业务对象和数据库关系的映射,即ORM;T代表模板(Template),负责如何把页面展示给用户,即HTML;V代表视图,负责业务逻辑,并在适当时候调用Model和Template。除了以上三层之外,还需要一个URL分发器、它的作用是将一个个URL的页面请求,分发给不同的视图处理,视图再调用相应的数据模型和模板。MTV的响应模式如下图所示:

1,Web服务器(中间件)收到一个http请求
2,Django在URLconf里查找对应的视图(View)函数来处理http请求
3,视图函数调用相应的数据模型来存取数据、调用相应的模板向用户展示页面
4,视图函数处理结束后返回一个http的响应给Web服务器
5,Web服务器将响应发送给客户端
这种设计模式关键的优势在于各种组件都是松耦合的。这样,每个由 Django驱动的Web应用都有着明确的目的,并且可独立更改而不影响到其它的部分。
比如,开发者更改一个应用程序中的 URL 而不用影响到这个程序底层的实现。设计师可以改变 HTML页面的样式而不用接触Python代码。
数据库管理员可以重新命名数据表并且只需更改模型,无需从一大堆文件中进行查找和替换。
Django的MTV模式相对应的python文件如下:

Django简单应用开发
为了能够更好地理解Django框架原理,我们通过Django开发一个简单的web应用,来熟悉基于Django框架的web应用开发流程。该应用可以在客户端进行静态页面展示,也可以在客户端通过在网页上提交表单的方法,修改服务器中数据库的数据,并在网页上可以查询数据库中的数据。其开发流程如下所示:
创建Django项目
通过devstack部署好all-in-one的openstack环境之后,Django也相应安装完成,可以在想要创建Django项目文件夹的目录下执行如下命令,创建Django项目,这里我们设置Django的项目名为mysite
django-admin.py startproject mysite
此时生成的mysite项目文件夹如下所示:

创建第一个页面
下面通过创建一个简单的静态展示页面来了解URLs分发和处理HTTP请求,首先需要将URL对应分配给某个对象处理,这需要在mysite/mysite下的urls.py设定。Python会根据该程序,将URL请求分给某个对象。urls.py的内容修改如下:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^$','mysite.views.first_page'),
]
其中最后一行的作用是将根目录的URL分配给一个对象进行处理,这个对象为mysite/mysite下views.py中的first_page函数,目前views.py文件夹还不存在,需要我们自己创建并定义first_page函数,py文件内容如下:
# -*- coding: utf-8 -*-
from django.http import HttpResponse
def first_page(request):
return HttpResponse("<p>第一个页面</p>")
此时便可以启动服务器查看该静态页面,在mysite目录下使用如下命令启动服务器:
./manage.py runserver 8080
此时通过访问127.0.0.1:8080端口即可看到如下页面:

增加一个app
一个网站可能有多个功能。可以在Django下,以app为单位实现模块化管理,而不是将所有的东西都放到一个文件夹下。在mysite下运行manage.py,创建新的名为app_test的app:
python manage.py startapp app_test
该命令执行后,会在mysite目录下生成app_test目录,目录文件结构如下所示:

要使用app_test,需要在mysite/setting.py的INSTALLED_APPS原组中增加app_test:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth'

本文介绍了Django框架的基本概念和工作原理,强调了MTV模式及其优势。通过一个简单的Django应用开发过程,包括创建项目、定义URL、处理HTTP请求、创建应用、使用数据库以及通过POST方法提交数据,深入浅出地展示了Django的应用开发流程。此外,文中还提及了Django在OpenStack Dashboard开发中的应用。
最低0.47元/天 解锁文章
2126

被折叠的 条评论
为什么被折叠?



