首页 > 其他分享 >MVC与MTV模型

MVC与MTV模型

时间:2023-08-02 16:37:35浏览次数:30  
标签:模型 py MTV 视图 Django MVC django

一 MVC与MTV模型

MVC

Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示:

 

 

MTV

Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:

  • M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
  • T 代表模板 (Template):负责如何把页面展示给用户(html)。
  • V 代表视图(View):   负责业务逻辑,并在适当时候调用Model和Template。

除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

二 Django的下载与基本命令

(1)下载Django

  方式一:在命令行输入:pip3 install  django

    pip install django==1.11.9 -i http://pypi.hustunique.org/simple   指定版本号,指定国内镜像

  方式二:用pycharm安装

  方式三:用pycharm的Terminal的命令行安装

(2)创建一个django project

django-admin.py startproject mysite

 当前目录下会生成mysite的工程,目录结构如下:

  • manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
  • settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
  • urls.py ----- 负责把URL模式映射到应用程序。

(3)在mysite目录下创建应用

 

python manage.py startapp blog

 

4、启动django项目

 

python manage.py runserver 8001

 

这样我们的django就启动起来了!当我们访问:http://127.0.0.1:8080/时就可以看到:

三 基于Django实现的一个简单示例

(1)URL控制器

复制代码
from django.contrib import admin
from django.urls import path


from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',views.index),
]
复制代码

(2)视图

复制代码
from django.shortcuts import render

# Create your views here.



def index(request):

    import datetime
    now=datetime.datetime.now()
    ctime=now.strftime("%Y-%m-%d %X")

    return render(request,"index.html",{"ctime":ctime})
复制代码

(3)模版

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h4>当前时间:{{ ctime }}</h4>

</body>
</html>
复制代码

四 Django静态文件配置

新建一个目录叫:static,我们的css文件,js文件,图片文件都放在这下面

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

 mycss.css

h4{
    color:red;
}
View Code

myjs.js

$('h4').click(function () {
    $(this).css("color","green");
})
View Code

insex.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/mycss.css">
    <script src="/static/jquery-3.3.1.js"></script>

</head>
<body>
<h4>我是红色,点击变绿</h4>
</body>
<script src="/static/myjs.js"></script>
</html>
View Code

 

五 Django请求生命周期

 

标签:模型,py,MTV,视图,Django,MVC,django
From: https://www.cnblogs.com/-hz01/p/17601023.html

相关文章

  • 计算机网络参考模型
    分层思想是什么及作用?将复杂的流程分解为几个功能相对单一的子过程使整个流程更加清晰,复杂问题简单化更容易发现问题并针对性的解决问题2.网络中数据的传输过程3.ISO,OSI,IOS的区别ISO:国际标准化组织OSI:开放系统互联参考模型IOS:互联网络操作系统4.OSI七层参考模型的功能5.OSI七层......
  • 服务模型(客户端/服务器)
    服务模型创建功能包cd~/catkin_ws/srccatkin_create_pkglearning_serviceroscpprospystd_msgsgeometry_msgsturtlesim客户端Client如何实现一个客户端初始化ROS节点;创建一个Client实例;发布服务请求数据;等待Server处理之后的应答结果。客户端代码turtle_spqwn.......
  • 干掉 CRUD!这个API开发神器效率爆炸,无需定义MVC类!!
    简介magic-api能够只通过UI界面就能完成简单常用的接口开发,能够支持市面上多数的关系性数据库,甚至还支持非关系性数据库MongoDB。通过 magic-api 提供的UI界面完成接口的开发,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象和相关文......
  • 干掉 CRUD!这个API开发神器效率爆炸,无需定义MVC类!!
    简介magic-api能够只通过UI界面就能完成简单常用的接口开发,能够支持市面上多数的关系性数据库,甚至还支持非关系性数据库MongoDB。通过 magic-api 提供的UI界面完成接口的开发,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象和相......
  • JS中的浏览器对象模型-DOM(二)
    表单在HTML表单中,可以上传文件的唯一控件就是<inputtype="file">。当一个表单包含<inputtype="file">时,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才能正确编码并以multipart/form-data格式发送表单的数据。如下面代码所示一个图片展示元素,一个......
  • TypeChat源码分析:基于大语言模型的定制化 AI Agent 交互规范
    TypeChat源码分析:基于大语言模型的定制化AIAgent交互规范本文深入介绍了微软最近发布的TypeChat项目,该项目允许开发者定义大语言模型返回的响应结构。通过分析源代码,探讨了Prompt的基本概念,为定制化开发互动式AIAgent提供便捷的解决方案。文章着重介绍TypeChat的关键......
  • InnoDB的索引模型
        MySQL索引是一种用于提高数据库查询性能的数据结构。    在MySQL中,索引是在存储引擎层实现的,所以并没有统一的索引标准,即不同存储引擎的索引的工作方式并不一样。而即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。由于InnoDB存储引擎在M......
  • JavaWeb和MVC三层架构
    JavaWeb概述网站发布和部署一定要依托技术语言吗:不一定,一个网站可以直接发布和部署,因为因为浏览器能够识别网页只需要两样东西,网络和静态页面,还有一个装在他们的容器,比如nginx。静态页面面临的问题:1:静态网页是固定的,是不可变的。如果一个网站比如腾讯首页,这里需要1000文......
  • IO模型
    1.同步和异步同步和异步指的是两个函数之间的关系同步:A调用B,A必须得到B返回的结果才能干其它事。异步:A调用B,同时提供给B一个函数,即回调函数,此时A没有得到任何结果继续执行,B在执行完成后,调用A提供的函数告知A。定义:和同步相对,发出异步调用后,调用者在没有得到结果之前,就可以继......
  • mvc的return view复选框反填
    首先我后台返回的是选中的复选框id字符串,把这个字符串绑定到一个控件上             在文档就绪函数获取要反填的id字符串和复选框元素,遍历多选框元素并设置选中状态,最后刷新表单。  ......