百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

为什么django既是MVC也用了MTV 框架?

ccwgpt 2024-09-13 16:17 90 浏览 0 评论

概述

前面项目已经创建好,网站也有了,所以接下来要实现网站的具体功能。在 Django ,人们把这具体的功能称为“应用”( application)


创建应用

(作用,把相同的东西提取出来比如文章的标题内容等这些相同的字段设置我们可以将他提取出来)

python manage.py startapp blog

说明:

manage.py 这是一个管理项目的脚本文件,会在数据库的迁移等地方使用

python manage.py startapp

python manage.py check 检查项目是否存在常见问题可以加应用名

python manage.py runserver 开启服务器

python manage.py flush 删除表中所有数据

python manage.py migrate将models迁移到数据库中

python manage.py makemigrations 生成迁移文件 ,要先生成文件,才能迁移


应用说明

从上述代码中可以看出,执行了命令之后,在目录中多了 blog 如果看看这时候的目录结构,会看到 blog 里面已经有默认的文件和目录了

目录说明:

mysite: 项目的容器。

manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

mysite/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。

mysite/settings.py: 全局配置文件;包括Django 模块应用配置,数据库配置,模板配置等。

mysite/urls.py: 路由配置文件。

mysite/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

blog/admin.py :在这个文件中,可以自定义 Django 管理工具 ,比如设置在管理界面能够管理的项目,或者通过重新自定义与系统管理有关的类对象,向管理功能增加新的内容

blog/apps.py :这个文件是djangol.10 之后增加的,通常包含对应用的配置,比如为管理能提供一个适合的应用名称。

blog/migrations :这是个目录,用于存储应用的数据库表结构的指令,通过这些指令可以修改和创建数据库,从而在 models.py 模型类和数据库表之间迁移

blog/models.py :这是应用的数据模型,每个Django 应用都应当有一个models.py 文件,虽然该文件可以为空,但不宜删除。

blog/tests py:在这个文件中可以编写测试文档来测试所建立的应用。

blog/views.py :这是个重要的文件,用户保存响应各种请求的函数或者类 如果编写的是函数,则称之为基于函数的视图:如果编写的是类,则称之为基于类的视图。views.py就是保存函数或者类的视图文件。

db.sqlite3:这是个默认的数据库,SQLite Python 默认安装的数据库,在 Django 中也可以默认使用。


views文件

我理解views文件在Django中非常重要,它是连接页面与数据的中间纽带。拿登录的例子来讲,用户在页面上输入了用户名和密码点击登录。那么 request 请求会由视图层views来接收,如何提取出用户名和密码的数据,如何用这些数据去查询数据库,再如何将登录成功的页面返回给用户,这些全部由视图层views来完成。

与大多数的Web端开发框架一样,Django开发同样使用MVC模式。

  • M 数据存取部分,由 Django 数据库层处理,本章要讲述的内容。
  • V 选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。
  • C 根据用户输入委派视图的部分,由 Django 框架根据 URLconf 设置,对给定 URL 调用适当的 Python 函数。

由于 C 由框架自行处理,而 Django 里更关注的是模型(Model)、模板(Template)和视图(Views), Django 也被称为 MTV 框架 。

在 MTV 开发模式中:

  • M 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效
  • T 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显 示。
  • V 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看 作模型与模板之间的桥梁。

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

相关推荐

十分钟让你学会LNMP架构负载均衡(impala负载均衡)

业务架构、应用架构、数据架构和技术架构一、几个基本概念1、pv值pv值(pageviews):页面的浏览量概念:一个网站的所有页面,在一天内,被浏览的总次数。(大型网站通常是上千万的级别)2、u...

AGV仓储机器人调度系统架构(agv物流机器人)

系统架构层次划分采用分层模块化设计,分为以下五层:1.1用户接口层功能:提供人机交互界面(Web/桌面端),支持任务下发、实时监控、数据可视化和报警管理。模块:任务管理面板:接收订单(如拣货、...

远程热部署在美团的落地实践(远程热点是什么意思)

Sonic是美团内部研发设计的一款用于热部署的IDEA插件,本文其实现原理及落地的一些技术细节。在阅读本文之前,建议大家先熟悉一下Spring源码、SpringMVC源码、SpringBoot...

springboot搭建xxl-job(分布式任务调度系统)

一、部署xxl-job服务端下载xxl-job源码:https://gitee.com/xuxueli0323/xxl-job二、导入项目、创建xxl_job数据库、修改配置文件为自己的数据库三、启动...

大模型:使用vLLM和Ray分布式部署推理应用

一、vLLM:面向大模型的高效推理框架1.核心特点专为推理优化:专注于大模型(如GPT-3、LLaMA)的高吞吐量、低延迟推理。关键技术:PagedAttention:类似操作系统内存分页管理,将K...

国产开源之光【分布式工作流调度系统】:DolphinScheduler

DolphinScheduler是一个开源的分布式工作流调度系统,旨在帮助用户以可靠、高效和可扩展的方式管理和调度大规模的数据处理工作流。它支持以图形化方式定义和管理工作流,提供了丰富的调度功能和监控...

简单可靠高效的分布式任务队列系统

#记录我的2024#大家好,又见面了,我是GitHub精选君!背景介绍在系统访问量逐渐增大,高并发、分布式系统成为了企业技术架构升级的必由之路。在这样的背景下,异步任务队列扮演着至关重要的角色,...

虚拟服务器之间如何分布式运行?(虚拟服务器部署)

  在云计算和虚拟化技术快速发展的今天,传统“单机单任务”的服务器架构早已难以满足现代业务对高并发、高可用、弹性伸缩和容错容灾的严苛要求。分布式系统应运而生,并成为支撑各类互联网平台、企业信息系统和A...

一文掌握 XXL-Job 的 6 大核心组件

XXL-Job是一个分布式任务调度平台,其核心组件主要包括以下部分,各组件相互协作实现高效的任务调度与管理:1.调度注册中心(RegistryCenter)作用:负责管理调度器(Schedule...

京东大佬问我,SpringBoot中如何做延迟队列?单机与分布式如何做?

京东大佬问我,SpringBoot中如何做延迟队列?单机如何做?分布式如何做呢?并给出案例与代码分析。嗯,用户问的是在SpringBoot中如何实现延迟队列,单机和分布式环境下分别怎么做。这个问题其实...

企业级项目组件选型(一)分布式任务调度平台

官网地址:https://www.xuxueli.com/xxl-job/能力介绍架构图安全性为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;调度中心和执...

python多进程的分布式任务调度应用场景及示例

多进程的分布式任务调度可以应用于以下场景:分布式爬虫:importmultiprocessingimportrequestsdefcrawl(url):response=re...

SpringBoot整合ElasticJob实现分布式任务调度

介绍ElasticJob是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目ElasticJob-Lite和ElasticJob-Cloud组成。它通过弹性调度、资源管控、...

分布式可视化 DAG 任务调度系统 Taier 的整体流程分析

Taier作为袋鼠云的开源项目之一,是一个分布式可视化的DAG任务调度系统。旨在降低ETL开发成本,提高大数据平台稳定性,让大数据开发人员可以在Taier直接进行业务逻辑的开发,而不用关...

SpringBoot任务调度:@Scheduled与TaskExecutor全面解析

一、任务调度基础概念1.1什么是任务调度任务调度是指按照预定的时间计划或特定条件自动执行任务的过程。在现代应用开发中,任务调度扮演着至关重要的角色,它使得开发者能够自动化处理周期性任务、定时任务和异...

取消回复欢迎 发表评论: