前言
由于常见的后端开发较为繁琐复杂,所以以django为后端架构的web开发逐渐流行,该框架容易部署,维护性好。
一、Django是什么?
Django是一款基于python,并被广泛应用的开源Web框架。
Django 的MTV模型(Model+ View+ Template设计模式)基于 MVC 模型(Model+ View+ Controller设计模式),MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
同时Django使用Python作为开发语言, 提高了开发效率, Django 是快速开发、设计、部署网站的最佳组合。
二、MVT模型介绍
Django 的 MTV 模型分别是指:
M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
T 表示模板 (Template):负责如何把页面(html)展示给用户。
V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template
除了上述MTV模型外,Django还有URL分发器,将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template。
图解工作流:
可以看到MVT模型的核心是View视图,一切都会汇总到View,统一处理后才会响应http请求。简单来说,URLS转发网站请求,也就是输入,MVT模型负责处理网站请求,再统一交由View层回复。
MVT模型内部图解:
MVT内部模型,Model负责数据对象,逻辑,映射;Template负责显示,用户逻辑;View负责任务调度,管理员逻辑。View负责任务调度处理,将数据的各种操作请求发送给Model,Model响应请求并在处理完后返回数据集。Template负责将用户的操作请求反馈给View,View处理完后再将数据回复给template,template再显示给用户。
完整的Django用户操作处理图:
2.代码实现
由于篇幅关系,这里展示一下模版代码,实现基础功能
urls.py
urlpatterns = [
url(r'^$', views.index),
url(r'^([0-9]+)/$', views.best),
]
该处定义url模式串,匹配网站发送给后端请求的数据。
views.py
from django.http import HttpResponse
def index(request):
#收到匹配成功的请求
#执行服务响应请求
#返回结果
return HttpResponse("hello Django")
models.py
from django.db import models
class Team(models.Model):
team_name = models.CharField(max_length=40)
TEAM_LEVELS = (
('U09', 'Under 09s'),
('U10', 'Under 10s'),
('U11', 'Under 11s'),
)
team_level = models.CharField(max_length=3,choices=TEAM_LEVELS,default='U11')
Team类是从 Django 的类派生models.Model。它将团队名称和团队级别定义为字符字段,并为每个记录指定了要存储的最大字符数。team_level 可以是几个值中的一个,因此,我们将其定义为一个选择字段,并在被展示的数据和被储存的数据之间建立映射,并设置一个默认值。
Template
<!DOCTYPE html>
<html lang="en">
<body>
{% if youngest_teams %}
<ul>
{% for team in youngest_teams %}
<li>{{ team.team_name }}</li>
{% endfor %}
</ul>
{% else %}
<p>No teams are available.</p>
{% endif %}
</body>
</html>
template使用html自定义即可,自由度高,且有大量模版可以借鉴