Django框架里的MVC思想MVC 设计模式

五分钟带你了解Django框架设计思想! Python编程语言的持续火爆,在最新Tiobe编程语言排行榜中位列第五,热度持续增加,尤其是在 AI 和 大数据时代,Python是 AI 和大数据时代的第一开发语言。这已经是一个不争的事实了,唯一的悬念就是谁能坐上第二把交椅了。 Python是胶水语言,应用及其广泛。在web应用领域,国内知名互联公司:有号称文艺青年的圣地–豆瓣评分,曾经主打高端问答知识社区的–知乎,唯有爱和美食不可辜负的–下厨房…… 谈到在web应用领域,除了Python的语法,Django是Python后台一个最重要的框架。今天小千 阅读详情

Django框架里的MVC思想

MVC 设计模式
服务器君一共花费  35.039 ms 进行了  3 次数据库查询,努力地为您提供了这个页面。
广告很萌的

让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同。 下面就是通过使用Django来完成以上功能的例子: 首先,我们分成4个Python的文件,(models.py , views.py , urls.py ) 和html模板文件 (latest_books.html )。

models.py:

1 # models.py (the database tables)
2  
3 from django.db import models
4  
5 class Book(models.Model):
6     name = models.CharField(max_length=50)
7     pub_date = models.DateField()

views.py:

1 # views.py (the business logic)
2  
3 from django.shortcuts import render_to_response
4 from models import Book
5  
6 def latest_books(request):
7     book_list = Book.objects.order_by('-pub_date')[:10]
8     return render_to_response('latest_books.html', {'book_list': book_list})

urls.py:

1 # urls.py (the URL configuration)
2  
3 from django.conf.urls.defaults import *
4 import views
5  
6 urlpatterns = patterns('',
7     (r'^latest/$', views.latest_books),
8 )

latest_books.html:

01 # latest_books.html (the template)
02  
03 <html><head><title>Books</title></head>
04 <body>
05 <h1>Books</h1>
06 <ul>
07 {% for book in book_list %}
08 <li>{{ book.name }}</li>
09 {% endfor %}
10 </ul>
11 </body></html>

不用关心语法细节,只要用心感觉整体的设计。 这里只关注分割后的几个文件:

  • models.py 文件主要用一个 Python 类来描述数据表。 称为 模型(model) 。 运用这个类,你可以通过简单的 Python 的代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。
  • views.py文件包含了页面的业务逻辑。 latest_books()函数叫做视图。
  • urls.py 指出了什么样的 URL 调用什么的视图。 在这个例子中 /latest/ URL 将会调用 latest_books() 这个函数。 换句话说,如果你的域名是example.com,任何人浏览网址http://example.com/latest/将会调用latest_books()这个函数。
  • latest_books.html 是 html 模板,它描述了这个页面的设计是如何的。 使用带基本逻辑声明的模板语言,如{% for book in book_list %}
  • 结合起来,这些部分松散遵循的模式称为模型-视图-控制器(MVC)。 简单的说,  MVC 是一种软件开发的方法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来。

这种设计模式关键的优势在于各种组件都是 松散结合 的。这样,每个由 Django驱动 的Web应用都有着明确的目的,并且可独立更改而不影响到其它的部分。 比如,开发者 更改一个应用程序中的 URL 而不用影响到这个程序底层的实现。 设计师可以改变 HTML 页面 的样式而不用接触 Python 代码。 数据库管理员可以重新命名数据表并且只需更改一个地方,无需从一大堆文件中进行查找和替换。

【Python 设计模式——MVC】 Python 设计模式——MVC 阅读详情

相关推荐

医学成像学习笔记(一):核磁共振成像(MRI)k空间为何是图像频谱详解

前言   k空间是核磁共振成像图像重建的核心,可能很多人像笔者一样第一次学时会非常疑惑,为何k空间是图像的频域空间,观其填充过程,明明是空域信号的采样填充呀。网上很少有文章讨论这个问题,所以笔者在此写下自己的理解,供大家参考。 MRI位置编码   现在的MRI一次扫描的是一个断层或者多个断层,所谓断层就是一个有厚度的面,通过z方向梯度场来选择。我们扫描一个断层的目的是为了获得该断层各位置的质子情况,它们携带着组织的性质信息,反应出来的就是信号强度。如果整个断层都采用相同的磁场强度,而我们只能得到一个断

意疏的学习笔记 1万+

为Python的web框架编写MVC配置来使其运行的教程

在Web开发中,MVC(Model-View-Controller)是一种常见的设计模式,用于将应用程序的不同方面分离开来,以便于管理和维护。Python的web框架也不例外,它们也可以通过MVC配置来实现更好的开发体验。本文将从多个角度分析如何为Python的web框架编写MVC配置来使其运行。

Python栈 1578

如何在n8n中高效调用playwright-mcp实现浏览器自动化(附避坑指南)

本文详细介绍了在n8n中高效集成playwright-mcp实现浏览器自动化的全流程指南,包括环境准备、工作流设计与优化、高级技巧与性能调优以及调试与问题排查。通过克服实际部署中的各种挑战,帮助用户打造稳定高效的自动化解决方案,特别适合需要浏览器自动化的工作流场景。

weixin_30379531的博客 387

Python系统学习1-9-类二之MVC框架

"""疫情信息管理系统学习MVC的软件架构视图:处理界面逻辑,输入输出控制器:处理核心逻辑,存储计算模型:将多个变量组合为一种类型餐厅的架构服务员 传菜员 厨师""""""

weixin_38383877的博客 1342

Python 使用Pygame库实现足球游戏:创建一个球员和一个足球,并使玩家能够控制球员的移动。游戏将包括碰撞检测、简单的物理模拟,以及基本的用户输入处理

本文将介绍如何使用Python和Pygame库创建一个简单的足球游戏。我们将搭建一个基本的游戏环境,创建一个球员和一个足球,并使玩家能够控制球员的移动。游戏将包括碰撞检测、简单的物理模拟,以及基本的用户输入处理。这个简单的足球游戏展示了Pygame的一些基本功能。虽然这是一个简单的游戏,但它包含了创建游戏循环、用户输入处理、物理模拟、碰撞检测等重要概念。

程序熊的博客 743

AS5600磁编码器IIC通信与角度读取实战指南

本文提供了AS5600磁编码器通过IIC通信协议实现高精度角度读取的完整实战指南。详细解析了硬件连接要点、IIC通信时序、Arduino与STM32平台驱动代码,并分享了多圈测量、噪声滤波等进阶应用与避坑技巧,帮助开发者快速将这款非接触式角度传感器集成到电机控制、旋钮等项目中。

weixin_29172201的博客 243

【Python】MVC架构

mvc架构浅入

Cerulea_n的博客 1241

一文读懂:CAN总线Bus-Off的触发条件与自动恢复机制

本文详细解析CAN总线Bus-Off状态的触发条件与自动恢复机制。根据ISO 11898-1标准,当发送错误计数器(TEC)超过255时节点进入Bus-Off状态,并通过检测128次总线空闲条件实现自动恢复。文章结合实战案例,探讨硬件故障、软件配置及电磁干扰等常见触发场景,并提供快慢恢复策略与调试方法,帮助工程师快速定位并解决CAN网络故障。

rgv234567的博客 361

Django简介

文章目录Django简介谁适合阅读本教程?学习本教程前你需要了解1. MVC设计模式2. Django简介2.1 MTV设计模式2.2 Django的简单使用2.2.1 Django的安装2.2.2 创建Django项目2.2.3 项目默认目录说明2.2.4 创建应用2.2.5 安装应用2.2.6 开发服务器 Django简介 谁适合阅读本教程? 本教程适合有Python基础的开发者学习。 学习本教程前你需要了解 学习本教程前你需要了解一些基础的 Web 知识及 Python 2.x 基础教程 或 Pyth

Allen 1万+

手把手教你学Simulink--基础电机控制场景实例:基于Simulink的无刷直流电机六步换相仿真

摘要:本文详细介绍了基于Simulink的无刷直流电机(BLDC)六步换相仿真方法。文章首先阐述了BLDC六步换相控制的原理,包括霍尔传感器定位、六步换相逻辑和方波电流驱动三大支柱。然后通过电动工具(角磨机)应用场景,展示了如何在Simulink中搭建完整的六步换相系统:从主电路构建、霍尔信号生成、Stateflow换相逻辑实现到开环电压控制。仿真结果显示该系统具有低成本优势(仅需霍尔传感器),但存在±20%转矩脉动。文章还提供了核心代码实现,包括霍尔信号生成、六步换相状态机和转矩分析脚本,并对比了六步换相

MHD0815的博客 149

【云原生技术】K8s 在拉取镜像时报错tls: failed to verify certificate: x509: certificate signed by unknown authority

原因 Kubernetes 节点在拉取镜像时会对 Harbor 的 HTTPS 证书做严格校验; 日志里的核心报错是: ``` tls: failed to verify certificate: x509: certificate signed by unknown authority ``` 说明 Harbor 返回的服务器证书要么是自签发,要么缺少在系统信任链里的根/中级 CA,节点因此拒绝连接。 你需要让 **所有负责拉镜像的节点(containerd 或 Docker 守护进程)

weixin_46453070的博客 2874

Python Django 强大的web mvc开发框架

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 目录 Django简介 Django的特点 框架介绍...

纸上得来终觉浅,绝知此事要躬行 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python Django 框架的 MVC 设计模式解析

Model(模型): 负责数据和业务逻辑。View(视图): 负责用户界面展示。Controller(控制器): 负责处理用户输入并协调 Model 和 View。这种分离使得代码更易于维护、扩展和测试,特别是在复杂的 Web 应用程序中。通过本文的分析可以看出,Django 虽然采用了不同于传统 MVC 的 MTV 模式,但其本质仍然是围绕着分层架构的思想展开的。理解 Django 的设计哲学有助于开发者更好地利用框架的优势,同时也能为其他类似框架的学习提供参考。

2501_91161847的博客 779

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

高岩 is me 9301

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pythonmvc简单框架设计_Django框架(一):MVC设计模式、Django简介

1. MVC设计模式MVC设计模式:Model-View-Controller简写。最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的...

weixin_29798379的博客 919

Django框架的初识——MVT与MVC设计模式

今天,我想聊下Django框架,也不知道正在读我这篇文章的小伙伴是否了解过这个框架,但是不管怎么样,还是聊下这个框架。 首先框架是什么东西?其实框架就是一个工具而已,不同的语言有不同的专属框架,而一种语言可以拥有多种框架,而我今天想聊的Django框架便是python的其中一个框架,与这个框架相对应也有Flask框架,额……两者区别不大,只不过Flask框架比较轻量级,而Django框架比较成熟,可以认为一个小孩一个大人吧。不过,这两个框架都是web框架。 ...

weixin_49898946的博客 833

Django之MVC设计模式

Django之MVC设计模式

April的博客 2390

Django框架里的MVC思想

Django框架里的MVC思想 MVC 设计模式 条目创建于 2013-07-15     2703 views 服务器君一共花费 14.559 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。 Chapter: Django 入门知识浅介 1. Python Web框架(Django)的必要性 2.

WHACKW的专栏 934

基于django框架的web开发环境搭建

一、Django框架简介 Django是基于Python语言开发的web开源框架,是当前python语言最流行的web框架,django本身是基于MVC的设计模式(有的培训机构介也称MTV模式M-model、V-view、T-templates),这只是名称上的区别,总体设计思想相同的,都实现了低耦合、开发快捷、部署方便、可重用性高、维护成本低的设计目标; django框架的基础学习主要有以下几个部分: 路由系统 MTV templates语法 数据库orm操作 二、Django开发环境搭...

WuHuaRou123的博客 3688

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

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

彩蛋在每篇文章的最后名片 1927
上一篇: KVM_SET_USER_MEMORY_REGION
下一篇: select、poll、epoll之间的区别总结[整理]
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值