【web开发】Django概念理解

本文介绍了Django,一种基于Python的开源Web框架,其MTV模型简化了开发过程。文章详细解释了模型(Model)、视图(View)和模板(Template)的角色,以及在urls.py、views.py和models.py中的应用。通过实例展示了如何在Django中实现基础功能。
摘要由CSDN通过智能技术生成

前言

由于常见的后端开发较为繁琐复杂,所以以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自定义即可,自由度高,且有大量模版可以借鉴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值