MVT简介
MVT即英文(Models-Views-Templates)的简写,MVT框架是Django遵从的视图显示框架,其原理跟Java和c#中广泛使用的MVC(Models-Views-Controller )框架类似。
框架可以把数据库和后台系统、前端显示界面通过网络连接起来。MVT框架示意图(摘自《Building websites with Django》):

其原理跟MVC非常接近,这里就不详细讲解了。
什么是Models(M)
简单的理解,我们可以认为Model就是用来描述我们要保存的数据。数据可以是数据库中的数据(但也不仅限于,如放在elsticsearch中的也可以),也可以在文件中的等等。由于大部分情况下我们都是在操作数据库,所以我们一般使用ORM(Object Relational Mapping对象关系映射)来建立数据库表和python对象之间的关系,从而避免直接编写SQL语句来操作数据库,当然你也可以直接通过SQL来读写数据库。在Java里面,一般我们还需要hibernate或JPA等ORM框架进行对象关系映射,而Django里面已经内建了ORM框架,我们直接使用即可,非常方便。
什么是Views(V)
View定义在views.py文件中,该文件如果没有,可以自行创建。View是相应url请求的和函数映射。个人理解,Django里面的View应该对应MVC中的C,而Django里面的T对应的是MVC中的V。

什么是Templates(T)
Template即界面模版,事实上是把动态内容和静态模版整合起来,一起生成最终的HTML页面,所以正如我前面说的,Django中的T跟Java web中的jsp页面类似,应该是MVC中的V才对。这点要特别注意。下图是一个Template的示例,学过JSP开发的人是不是一看就懂了啊?

简单示例
下面我们直接在创建的项目上添加一个views.py文件,内容如下:
from django.shortcuts import render
def index(request):
return render(request,'index.html',{"message":"hello django"})在项目的根目录下添加新目录templates,并新建一个html文件index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ message }}
</body>
</html>然后修改urls.py文件,添加一个path函数,指定URL指向我们的views.index函数。
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index),
]path() 函数说明
Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。
语法格式:
path(route, view, kwargs=None, name=None)route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
view: 用于执行与正则表达式匹配的 URL 请求。
kwargs: 视图使用的字典类型的参数。
name: 用来反向获取 URL。
也可以通过re_path()函数,用正则表达式的规则来实现 。
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='主页'),
re_path(r'^user/(?P<username>\w+)/$', views.user, name='kevin'),
re_path(r'^weblog/', include('blog.urls')),
...
]修改完成后的项目目录结构如下

启动服务,打开浏览器访问就可以看到主页的内容了

评论区