Django_MVT(二)

MVT模型<->前后端不分离&前后端分离&模板引擎 一、前后端不分离与前后端分离的比较 前后端不分离特点: 后端需控制数据的展示 前后端不分家,耦合严重 返回的是HTML页面,适应性、拓展性差 只能用于浏览器,其它终端不匹配 前后端分离的特点: 当前主流 后端只对数据进行处理,只提供数据 前端效率、页面好不好看,全由前端负责,前后端完全独立 解耦合 前后端同时开发,缩小业务上线周期 绝大多数情况下,前端发送json格式的参数,后端同样以json格式的数据返回 适应性、拓展性好 适合多终端运行同一套接口(PC、APP、小程序等) 二、MVT模型   mvt模型 阅读详情

目录

一、MVT简介

二、M-模型类

1. 定义模型类

2. 迁移

2.1 生成迁移文件命令如下:

2.2 执行迁移命令如下:

3. 数据基础操作

三、V-视图

1.定义视图

2.配置URLconf

访问服务器

四、T-模板

创建模板文件

定义模板

视图调用模板

视图调用模板简写

源码等资料获取方法


一、MVT简介

M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。

V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

Django中的MVT遵守 MVC执行流程。

MVT即模型-模版-视图模式,其标准名称是有争议的。在MVC的解释中,视图描述了展现给用户的数据,是指所看到的数据,而不是如何看见它。在python中视图是指对某一特定URL的回调函数,因为回调函数描述了所要展现的数据。模版用于将内容与展现分离。在django中,视图描述了要展现的数据,而视图一般转交给模版。模版描述了数据如何展现,控制器则是指django框架本身,通过URL配置,系统将一个请求发送到一个合适的视图。

二、M-模型类

我们之前操作数据库是通过写sql语句,那么能不能不写sql语句就可以操作数据库呢? 可以,就是通过接下来要给大家讲的ORM框架。

O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。

django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。

使用django进行数据库开发的步骤如下:

  • 1.在models.py中定义模型类
  • 2.迁移
  • 3.通过实例对象完成数据增删改查操作

下面我们以保存图书信息为例来给大家介绍Django中进行数据库开发的整个流程。

1. 定义模型类

模型类定义在models.py文件中,继承自models.Model类。

说明:不需要定义主键,在生成时会自动添加,并且值为自动增长。

设计书籍类

书籍类:

  • 类名:BookInfo
  • 书籍名称:btitle
  • 发布日期:bpub_date

根据设计,在./booktest/models.py中定义模型类如下:

from django.db import models

class BookInfo(models.Model):
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateField()

2. 迁移

迁移由两步完成:

  1. 生成迁移文件:根据模型类生成创建表的迁移文件。
  2. 执行迁移:根据第一步生成的迁移文件在数据库中创建表。

2.1 生成迁移文件命令如下:

python manage.py makemigrations

 执行生成迁移文件命令后,会在应用booktest目录下的migrations目录中生成迁移文件。

 打开上图中的迁移文件,内容如下:

# Generated by Django 3.1.2 on 2020-10-25 12:27

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='BookInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('btitle', models.CharField(max_length=20)),
                ('bpub_date', models.DateField()),
            ],
        ),
    ]

Django框架根据我们设计的模型类生成了迁移文件,在迁移文件中我们可以看到fields列表中每一个元素跟BookInfo类属性名以及属性的类型是一致的。同时我们发现多了一个id项,这一项是Django框架帮我们自动生成的,在创建表的时候id就会作为对应表的主键列,并且主键列自动增长。

2.2 执行迁移命令如下:

python manage.py migrate

 当执行迁移命令后,Django框架会读取迁移文件自动帮我们在数据库中生成对应的表格。数据表的默认名称为:<app_name>_<model_name> 例:booktest_bookinfo

3. 数据基础操作

 完成数据表的迁移之后,进入Python交互模式并尝试使用Django提供的免费API。注意,我们不能直接键入"python"进入交互模式,要使用以下命令调用Python Shell

python manage.py shell

因为在manage.py 文件中设置了DJANGO_SETTINGS_MODULE环境变量,它为Django提供python到test1/settings.py文件的导入路径。

如果直接键入“python”进入交互模式,在from booktest.models import BookInfo时会报如下错误:

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. 
You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

需要手动加上DJANGO_SETTINGS_MODULE环境变量

>>> import os,django
>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test1.settings")
'test1.settings'
>>> django.setup()
>>> from booktest.models import BookInfo
>>> BookInfo.objects.all()
<QuerySet []>
>>>

进入Shell后,探索数据库API

>>> from booktest.models import BookInfo
>>> # 查询数据库所有信息
>>> BookInfo.objects.all()        
<QuerySet []>
>>>
>>> #新增数据
>>> book1=BookInfo()  
>>> book1.btitle='射雕英雄传'  
>>> import datetime
>>> book1.bpub_date=datetime.date(1990, 1, 1)   
>>> book1.save()        
>>> BookInfo.objects.all()
<QuerySet [<BookInfo: BookInfo object (1)>]>
>>>
>>>
>>> # 查找指定条件数据
>>> book2=BookInfo.objects.get(id=1)
>>> book2.btitle
'射雕英雄传'
>>> 
>>> # 修改数据
>>> book2.btitle='神雕侠侣'
>>> book2.save()
>>>
>>> # 删除数据
>>> book2.delete()
(1, {'booktest.BookInfo': 1})
>>> BookInfo.objects.all()
<QuerySet []>

更多api方法可查看django源码,路径为:django.db.models.query.QuerySet

QuerySet [<BookInfo: BookInfo object (1)>]>对于了解这个对象不是很直观的,可以给 BookInfo 模型类(位于 test1/models.py 中)增加 __str__() 方法来解决这个问题。

class BookInfo(models.Model):
    ...

    def __str__(self):
        return F"btitle:{self.btitle},bpub_date:{self.btitle}"

重进Shell后

>>> from booktest.models import BookInfo
>>> BookInfo.objects.all()
<QuerySet [<BookInfo: btitle:射雕英雄传,bpub_date:1980-05-01>, <BookInfo: btitle:天龙八部,bpub_date:1986-07-24>, <BookInfo: btitle:雪山飞狐,bpub_date:1987-11-11>]>
>>>

三、V-视图

对于django设计的MVT框架,用户在URL中请求的是视图,视图接收请求后进行处理,并将处理的结果返回给请求者。

使用视图时需要进行两步操作:

  1. 定义视图函数
  2. 配置URLconf

1.定义视图

视图就是一个Python函数,被定义在views.py中。

视图的必须有一个参数,一般定义为request,视图必须返回HttpResponse对象,HttpResponse中的参数内容会显示在浏览器的页面上。

打开booktest/views.py文件,定义视图index如下

from django.http import HttpResponse

def index(request):
    return HttpResponse("hello python!")

2.配置URLconf

视图的查找过程是请求者在浏览器地址栏中输入url,请求到网站后,获取url信息,然后与编写好的URLconf逐条匹配,如果匹配成功则调用对应的视图函数,如果所有的URLconf都没有匹配成功,则返回404错误。

一条URLconf包括url规则、视图两部分:

  • url规则使用正则表达式定义。
  • 视图就是在views.py中定义的视图函数。

需要两步完成URLconf配置:

  • 1.在应用中定义URLconf
  • 2.包含到项目的URLconf中

在booktest/应用下新建urls.py文件,定义代码如下:

from django.conf.urls import url
from booktest import views
urlpatterns = [
    url('index', views.index),
]

将booktest/urls包含到项目中:打开test1/urls.py文件,为urlpatterns列表增加项如下:

path('booktest/', include('booktest.urls')),

test1/urls.py文件完整代码如下:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('booktest/', include('booktest.urls')),    # booktest/ 可以为空白
]

访问服务器

视图和URLconf都定义好了,接下来在浏览器地址栏中输入网址:

 

四、T-模板

如何向请求者返回一个漂亮的页面呢?

肯定需要用到html、css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为HttpResponse()的参数吗?这样定义就太麻烦了吧,因为定义字符串是不会出任何效果和错误的,如果有一个专门定义前端页面的地方就好了。

解决问题的技术来了:模板。

在Django中,将前端的内容定义在模板中,然后再把模板交给视图调用,各种漂亮、炫酷的效果就出现了。

创建模板文件

在项目test1中新增templates目录,现在我们可以直接将模板放入 test1/templates,但实际上并不建议这样做。Django会选择找到的第一个名称匹配的模板,如果在其他应用有一个具有相同名称的模板,Django则无法区分它们。我们需要Django能够指向正确的位置,而确保这一点的最佳方法是将这些模板放在应用程序本身命名的另一个目录中。目录结构如下图:

 

设置模板的查找路径:打开test1/settings.py文件,设置TEMPLATES的DIRS值

'DIRS': [os.path.join(BASE_DIR, 'templates')],

完整配置如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

定义模板

在模板中输出变量语法如下,变量可能是从视图中传递过来的,也可能是在模板中定义的。

{{变量名}}

在模板中编写代码段语法如下:

{%代码段%}

打开templtes/booktest/index.html文件,定义模板如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书列表</title>
    <style>
        td {text-align: center;}
    </style>
</head>
<body>
<h1>{{title}}</h1>
<table width="500px">
    <tr>
        <th>书籍名称</th>
        <th>发布日期</th>
    </tr>
{%for book in books%}
    <tr>
        <td>{{book.btitle}}</td>
        <td>{{book.bpub_date}}</td>
    </tr>
{%endfor%}

</table>
</body>
</html>

视图调用模板

调用模板分为三步骤:

  • 1.找到模板
  • 2.定义上下文
  • 3.渲染模板

打开booktst/views.py文件,调用上面定义的模板文件

from django.shortcuts import render
from booktest.models import BookInfo
from django.http import HttpResponse
from django.template import loader, RequestContext

# Create your views here.


def index(request):
    # 1.获取模板
    template=loader.get_template('booktest/index.html')
    # 2.定义上下文
    books = BookInfo.objects.all()
    # context=RequestContext(request,{'title':'图书列表','books':books})    # 老版本
    context = {'title': '图书列表', 'books': books}
    # 3.渲染模板
    # return HttpResponse(template.render(context))     # 老版本
    return HttpResponse(template.render(context, request))

打开浏览器刷新页面,显示效果如下图:

视图调用模板简写

视图调用模板都要执行以上三部分,于是Django提供了一个函数render封装了以上代码。 方法render包含3个参数:

  • 第一个参数为request对象
  • 第二个参数为模板文件路径
  • 第三个参数为字典,表示向模板中传递的上下文数据

打开booktst/views.py文件,调用render的代码如下:

from django.shortcuts import render
from booktest.models import BookInfo

# Create your views here.


def index(request):
    books = BookInfo.objects.all()
    context = {'title': '图书列表', 'books': books}
    return render(request, 'booktest/index.html', context)

源码等资料获取方法

各位想获取源码的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

 

MVC, MVP, MVT, MVVM的区别 看到这篇文章的人,我觉得至少MVC是听过的。但是,当你百度区别,可能有点搞不清楚,那种是MVC,哪种是MVP。因为,MVC从出生到现在,已经经过多次变形,甚至,有人把MVP当成MVC的一种情况,也算MVC。 这篇文章会尽量着重讲清楚为什么需要这些改变 MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写 ... 阅读详情

相关推荐

django MVT 和 MVC

Django 是一个流行的 Web 框架,以其简洁、优雅和强大的功能而闻名。它采用了 MVT(Model-View-Template)架构模式,这与 MVC(Model-View-Controller)模式有着密切的关系。了解 Django 的 MVT 和传统的 MVC 之间的异同,可以帮助我们更好地理解 Django 的设计理念和运作方式。

weixin_43674738的博客 1030

MVT模型

MVT模型 MVT模型的简介 MVT模型的原理 MVT模型的简介 MVT模型和传统的MVC模型实际上是一样的。只是在创建Django这个框架的时候,把他改成了MVT模型。但是实际上的一些功能的组成是和MVC是一样的。在这里也不过多的讲述。 返回目录 MVT模型的原理: 下面的图就是MVT模型工作的基本原理 浏览器发送请求的命令给V视图,视图v接受到数据后交给M进行和数据库的交互。模块M将...

江湖混子 4976

Django MVT 模型及其模块介绍

在 Python3 交互终端输入: &amp;amp;amp;gt;&amp;amp;amp;gt; import django &amp;amp;amp;gt;&amp;amp;amp;gt; help(django) Help on package django: NAME django PACKAGE CONTENTS __main__ apps (package) conf (package)

程序员「阿基米东」的编程之旅 4975

MVT和MVC的区别

1.mvt和mvc的区别 M:model V:views C:controller T:templa 在MVC中 model是 主要是封装对数据库层的访问,对数据库中的数据进行增删改查操作 views 是 用于封装结果, 生程页面展示html 内容 controller 是用于接收请求,处理业务逻辑,与前两者交互,返回结果 MVT中 m为mvc中的功能相同,负责和数据库交互,进行数据处理 v是和mvc的c的意识相同 接收请求,进行业务处理,返回应答 t 是templa与mvc的v功能相同.

m0_57353034的博客 3532

Win11用户文件夹中文名修改全攻略

本文详细介绍了Windows 11系统中修改中文用户文件夹名称的完整步骤。操作包含七个关键环节:前期数据备份、账户名称修改、管理员账户激活、用户文件夹重命名、注册表路径更新、收尾操作及注意事项。特别强调需要同步修改账户名、文件夹名和注册表关联路径,并建议操作前备份重要数据。文中还针对常见问题提供了解决方案,如软件报错时的符号链接创建方法。整个过程需谨慎操作,建议在管理员权限下逐步执行,修改完成后需验证系统及软件功能是否正常。

Qinti_mm的博客 3123

从农田到城市:如何利用NDVI和缨帽变换提升遥感图像分类精度?

本文深入探讨了如何利用NDVI(归一化差值植被指数)和缨帽变换(Tasseled Cap Transformation)两大关键技术,有效提升从农田到城市等复杂场景的遥感图像分类精度。文章通过剖析地物光谱特征,对比了原始波段与衍生特征的优劣,并提供了在ENVI、ArcGIS及Python环境中的具体操作指南与实战策略,旨在帮助从业者构建更鲁棒的特征工程流程,从而解决地物混淆、边界模糊等常见分类难题。

redis7keeper的博客 866

【Django 实验二】开源项目运行与 MVT 架构解读

django-vue3-admin 是一个基于 Django + Vue3 的前后端分离后台管理系统。该项目展示了 Django REST Framework 与现代前端框架的结合使用。前后端分离架构RESTful API 设计JWT 认证机制Element Plus UI 组件库权限管理(RBAC)后端:Django + Django REST Framework前端:Vue3 + Vite + Element Plus数据库:MySQL / PostgreSQL。

2301_80969529的博客 408

(学习笔记)机器人自主导航从零开始第四步———Rviz、Gazebo、Meshlab的安装

一、Rviz的安装 Rviz是一个

qq_59475883的博客 5057

Django MVT详细说明(二)视图V

一、项目路由 在settings中配置了项目路由 ROOT_URLCONF = ‘demo1.urls’ 在项目路由urlpatterns中通过include函数引入应用路由配置文件 url(‘book/’,include(‘book.urls’)) 二、应用路由 在应用路由中urlpatterns通过url函数引入每一个子路由 三、定义视图函数(带有两个参数) def detail(req...

weixin_42439244的博客 395

【Claude】Claude Code 子代理(Subagents)完全指南:多 AI 编排与并行任务管理

子代理是在独立上下文窗口特性主代理子代理上下文窗口与你对话的主上下文完全独立的上下文工具权限拥有所有工具可自定义限制生命周期整个会话完成任务后结束通信方式直接对话结果返回给主代理模型继承主会话设置可指定不同模型你可以创建专属子代理,指定模型、工具权限和系统提示。在对话中,Claude 会根据任务自动选择合适的子代理。

博客 5538

高分六号WFV预处理详细步骤(辐射校正、大气校正、几何校正)

高分六号WFV传感器获得的影像的预处理分为两个步骤:辐射校正和大气校正,辐射校正为了消除传感器的自身误差,大气校正为了消除大气的折射误差。 一、辐射校正 按照红框中信息进行更改。 辐射校正前地物光谱反射率: 校正后的地物光谱曲线的变化: 二、大气校正 ENVI中大气校正一般采用Flaash模型,但是这个模型需要设置许多的参数十分的麻烦,所以采用ENVI商店(app store,这个也需要下载的)里的Flaash Easy To Use 这个插件,可以快速地进行大气校正。 大气校正后的地物反射率 这

qq_41828818的博客 1万+

Django基础概念和MVT架构(二)

1.5站点管理 站点: 分为内容发布和公共访问两部分 内容发布的部分由网站的管理员负责查看、添加、修改、删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块, 需要按照如下步骤操作 : 1.管理界面本地化 2.创建管理员 3.注册模型类 4.发布内容到数据库 5.自定义站点管理页面 1.管理界面本地化 ...

weixin_30773135的博客 226

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3411

Django让web开发更简单(二):了解MVT模式

前情提示 上一章节,我们“重头到尾”把前后端不分离的开发模型MTV(也有叫MVT)撸了一遍,发现跟java的MVC模型(这里不讲解)很像。 官方文档不采用MVC的说法,而采用MTV的说法,原因也有说明,以下是原话: (地址:https://docs.djangoproject.com/en/3.1/faq/general/) Django appears to be a MVC framework, but you call the Controller the “view”, and the View t

weixin_43431593的博客 372

安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案

本文主要介绍了安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案,希望能对学习使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

《Python Web项目集锦》-专栏介绍和目录

本专栏专注于Python Web项目,涉及内容包含FastAPI、Django、Flask等,所有项目代码完整且可直接运行。不管是零基础还是有经验的开发,相信都能从本专栏获益。有任何问题欢迎私聊博主,专栏持续更新中...

数据知道的博客 5212

作业汇总/期末初稿

# 项目信息- **姓名**:王翔- **学号**:f23016334- **项目名称**:DjangoBlog - 森林绿学术风笔记- **设计风格**:清新学术笔记风格,以森林绿为主色调---## 一、MVT 架构说明Django 采用 **MVT (Model-View-Template)** 设计模式,是 MVC 模式在 Django 中的具体实现。### 1. Model(模型)- 数据层**职责**:负责与数据库交互,定义数据结构。

wxandgjw的博客 395

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Django到底是MVC还是MVT?以及MVC和MVT的区别

最近一直被一些问题所困惑:Django是遵循MVC还是MVT?MVC和MVT到底有哪些区别?MVC可以继续拆分吗? 在网络上浏览了很多无关痛痒的文章,无非是M、V、C分别代表什么,M、V、T又分别代表什么,这些表层的解释对程序员来说非但不会解决问题,反而还会增加困惑。所以,在查了一些资料之后,在个人理解的基础上,进行总结,记住,这只是个人观点和立场。 MVC是怎么来的?是什么? 最开始MVC是一种...

高岩 is me 9301

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Django的MVT设计模式

MVT设计模式:Django的高效开发哲学 MVT(Model-View-Template)是Django的核心设计模式,简化了MVC架构。Model负责数据(ORM操作),View处理业务逻辑并返回响应,Template渲染动态HTML。与MVC不同,Django隐式处理控制逻辑,开发者只需专注数据和展示。交互流程:请求→路由→View调用Model→Template渲染→响应。优点包括低耦合、高效开发和高安全性,但灵活性受限(需结合前端框架扩展)。适合快速构建安全、可维护的Web应用。 (字数:149)

weixin_53747617的博客 1103

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Django中的MVC和MVT模式

特性传统 MVCDjango MVTModel数据和业务逻辑层与 MVC 的 Model 完全一致View用户界面呈现层(HTML/CSS)对应 MVC 中的 Controller(处理请求, 业务逻辑)Controller请求处理、协调 Model 和 View 的逻辑对应 Django 中的 URL Dispatcher + ViewTemplate不存在此术语对应 MVC 中的 View(用户界面呈现层)核心差异View 负责显示,Controller 负责逻辑。

q_cccc_的博客 1187

Django系列教程(3)——Django的MVT设计模式

当用户发来一个请求(request)时,Django会对请求头信息进行解析,解析出用户需要访问的url地址,然后根据路由urls.py中的定义的对应关系把请求转发到相应的视图处理。Django的MVT设计模式由Model(模型), View(视图) 和Template(模板)三部分组成,分别对应单个app目录下的models.py, views.py和templates文件夹。光编写视图(views.py)还不够,我们还得为写好的视图函数配置路由,这样才能将视图函数与用户的请求地址建立好对应关系。

彩蛋在每篇文章的最后名片 1927

Django开发入门 – 5. Web框架与MVT架构

本文简要介绍Web框架的含义,以及Django Web框架结构,MVC架构;运用MVT来实现Django Web应用程序的基本理念。希望对读者有所帮助。

jackson_lingua的博客 2017

【Django入门】——MVC和MVT两种模式的异同

MVC和MVT两种模式的异同

weixin_37780776的博客 3998

详解Django MVT设计模式

本章我们将介绍下经典的软件开发所遵循的MVC (Model-View-Controller, 模型-视图-控制器) 设计模式以及Django的MVT设计模式(Model-View-Temp...

大江狗 1648

[Django]MVT模式的详解

关于 Django 数据驱动 Web 应用的总体设计 把数据存取逻辑、业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式。 在这个模式中, Model 代表数据存取层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。 为什么用缩写? 像 MVC 这样的明确定义模式的主要用于改善开发人员之间的沟通。 比起告诉同事,“让我们采用抽象的数据存取方式,然后

SORYUSHIKINAMI的博客 5900

Django中关于MVC和MVT

Django Tornado等等很多的web框架都是采用MVC和MVT软件架构的web框架 所以要学好Django我们必须先了解MVC和MVT是什么?django基础知识之认识MVT MVC:MVT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示model,负责与数据库交互 v表示view,是核心,负责接收请求、获取数据、返回结果 t表示temp

selectY的博客 2550
上一篇: Django_环境配置(一)
下一篇: Django_模板(四)
bug捕手
博客等级 码龄4年 899粉丝 417原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值