1. Django框架的基本介绍
Django是一个开放源代码的Web应用框架,由Python语言写成,采用了MVT的框架模式,即模型M、视图V和模板T。
MVT全名是ModelViewTemplate,而Python的Web开发框架Django是属于MVT模式。实际上,Django的MVT模式本质上与MVC模式基本没有什么差别,它也是各组件之间为了保持松耦合关系,只是定义上有一些不同,Django的MVT分别代表如下:
M | M是Model的简称,与MVC中的M功能相同,主要用于负责和数据库交互,进行数据处理。 |
V | V是View的简称,与MVC中的C功能相同,主要用于接收请求,负责业务逻辑,并在适当时调用Model和Template。 |
T | T是Template的简称,负责封装并构造要返回的html。 |
2. 一个简单的Django程序
2.1 创建项目
创建项目的命令如下:
django-admin startproject + 项目名称
下面我创建了一个“myweb”的项目:
创建好的项目由以下两部分组成:
(1)manage.py文件是一个命令行工具,可以使用多种方式来对Django项目进行交互;(2)myweb/myweb目录是项目真正的Python包,下面来简单介绍一下上述中myweb/myweb下的各个主要文件的作用,如下表:
__init__.py | 一个空文件,它用于告知Python(且只对于Python),这个目录应该被看做一个Python包。 |
settings.py | 用于项目设置或配置。 |
urls.py | 项目创建的各个环节与要调用的函数,都要在此文件中进行URL声明。 |
wsgi.py | 若需要部署项目在WSGI协议上,则此文件是项目与WSGI协议兼容的Web服务器入口。 |
2.2 开启服务器
开启服务器的命令如下:
python manage.py runserver[ip:port]
需要注意:①可以不写ip与port值,此时默认IP地址为本机地址、端口号为8000;②此服务器是一个纯Python语言编写的轻量级Web服务器,仅在开发阶段会使用。
开启服务器时要在项目目录路径下开启
当成功开启服务器后,则可以打开浏览器并输入网址“127.0.0.1:8000”用于打开默认页面,显示如下:
2.3 创建视图----->创建一个HelloWorld的网页页面
我们要在startproject制作的myweb文件夹中,创建一个叫做views.py的空文件,也就是在__init__.py这些文件的同级目录中:
在views.py中写入的代码:
from django.http import HttpResponse
def hello(request):
# request参数必填
return HttpResponse("HelloWorld.")
从django.http模块导入HttpResponse类。接下来,定义了一个叫做hello()的视图函而每个视图函数至少要有一个参数,通常被叫作request。这是一个触发这个视图、且包含当前Web请求信息的对象,是类django.http.HttpRequest的一个实例。在这个示例中,我们虽然不使用request做任何事情,然而它仍然得是这个视图的第一个参数。然后返回了一个HttpResponse对象,这个对象包含了“HelloWorld”文本信息。
2.4 配置URL
接下来需要通过一个详细描述的URL来显式的告诉它并且激活这个视图。为了绑定视图函数和URL,我们就需要使用到URLconf。
URLconf就像是Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于这个URL可以调用这段代码,对于那个URL则可以调用那段代码。
接下来需要对urls.py文件做一些修改,并让它能识别http://127.0.0.1:8000/hello/这个URL。首先使用from.importviews导入views.py模块,然后在urlpatterns列表后加上如下代码即可:
from django.conf.urls import url
from django.contrib import admin
from .views import hello
urlpatterns = [
# urls.py中默认的一个路径
url(r'^admin/', admin.site.urls),
# 当访问http://127.0.0.1:8000/hello/路径时,会执行hello方法
url(r'^hello/',hello)
]
开启服务后,输入'http://127.0.0.1:8000/hello/'就可以显示出Hello World界面
到这里,我们就实现了一个简单的Django程序。