1. Django 官方网站

https://docs.djangoproject.com/zh-hans/3.0/intro/tutorial01/

2. Model View Controller

Model控制数据,View负责生成响应, Controller负责处理请求和调度。一个简单的WEB程序的流程如下:

客户端(浏览器)访问http:\\ example.com\index,它向服务器IP以及对应端口发起HTTP请求(GET/POST)。

当客户端和服务端建立了TCP连接后,HTTP请求的header以及内容被WEB 服务器程序所接收并处理,WEB 服务器会将HTTP请求中对应的请求路径\index发给WEB 后端程序(Django程序)。这时,Django的Controller会对这个URL路径做字符串匹配,当找到了对于匹配项后,会返回这个URL对应的VIEW。这时VIEW程序内部会针对此次请求作相应处理,查询Model内的数据,然后生成一个HTTP Response(例如一个HTML文件)。然后,WEB 服务器会将这个HTTP response按其对应IP将它发送回浏览器。 浏览器接收到了HTTP response之后,对其进行解析,将HTML文件进行加载,并渲染,最后显示在屏幕上。

Django内部的Model就等价于数据库系统。 Model主要是对项目的数据进行建模并操纵。当我们设计好关系模式(表)后,使用Django的migration操作,就可以生成SQL(建表)语句,并执行SQL语句创建数据库的表。然后,我们就可直接调用对应接口对数据进行增删查改。

View在Django可以看成每一个url请求所对应的相应。View做的就是一件事情,接受HTTP request,然后返回HTTP response,至于response是字符串、HTML、pdf文件还是jpg图片都是次要的了。View只需处理request,然后生成响应的内容,让后将内容封装到HTTP response并返回它。

在很多情况下,View需要返回HTML文件,所以View大多都要使用模板Tempolate。模板可以理解为频繁使用或通用的HTML文件,我们要做的就是设计模板和使用模板。当我们处理对应的URL请求后,生成了相应数据,然后再把数据传进模板,利用模板语言(Django有默认的模板语言),将模板中变量替换为我们输入的数据,就生成了最终的HTML文件。

Controller负责处理请求,也就是应对不同的请求(URL),我们应该返回不同的response。Controller主要负责建立URL到VIEW的映射(它对应这Django内的url_pattern),对于不同url我们要返回与之对应的view。

Django WEB开发 - Django 3.0 Tutorial入门的更多相关文章

  1. Django web 开发指南 no such table:

    在学习django web开发指南时,发布新博客点击save后会有error提示:no such table balabalabala... 百度了一下说重新运行manage.py syncdb 就可 ...

  2. Django Web开发学习笔记(1)

    一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>& ...

  3. Django Web开发指南笔记

    Django Web开发指南笔记 语句VS表达式 python代码由表达式和语句组成,由解释器负责执行. 主要区别:表达式是一个值,它的结果一定是一个python对象:如:12,1+2,int('12 ...

  4. python web开发——django学习(一)第一个连接mysql数据库django网站运行成功

    1.新建一个项目 2.新建一些文件夹方便管理 3.新建一个项目叫message  4.连接数据库 python web开发Django连接mysql 5.在数据库里自动生成django的表  6.运行 ...

  5. [python] python django web 开发 —— 15分钟送到会用(只能送你到这了)

    1.安装python环境 1.1 安装python包管理器: wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py   1. ...

  6. Django web开发【5】 实现标签功能

    标签tag在很多web2.0应用中都很常见,标签其实就是关联某些信息的一个关键字.打标签实际上就是给内容分配标签的过程,它通常由作者或者用户实现.标签之所有这么流行是因为它允许用户对自己创建的博客.图 ...

  7. Django Web开发【4】 用户注册与管理

    几乎所有的网站都提供了用户注册与管理功能,这一节,我们将讲解如何利用Django自身提供的用户认证系统实现用户注册与管理功能. 会话认证 在上一节中,我们学习了User数据模型,并用它来保存用户信息, ...

  8. Python Web开发:Django+BootStrap实现简单的博客项目

    创建blog的项目结构 关于如何创建一个Django项目,请查看[Python Web开发:使用Django框架创建HolleWorld项目] 创建blog的数据模型 创建一个文章类 所有开发都是数据 ...

  9. Django Web开发【3】创建网络收藏夹

    这一节我们将继续一个创建网络收藏夹应用,并学习视图.模型以及模板的处理过程. Django是一个MVC开发框架,但是它的控制器对应的为view,而视图对应为模板(template),模型对应model ...

随机推荐

  1. 24张图攻克border-image

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  2. myeclipse10的问题

    1.导入项目后java文件头部出现The type java.lang.CharSequence cannot be resolved. It is indirectly referenced fro ...

  3. 【题解】金牌导航-高斯消元/Luogu P3232 游走

    题目描述: 详细分析: 我们对于编号的分配,很明显可以发现如下的分配就是期望最小的:对经过的期望次数越大的边赋予更小的编号. 那么问题就转化为了怎么求一条边的经过的期望次数,我们发现边数非常大所以肯定 ...

  4. 从零开始,开发一个 Web Office 套件(16):拖动控制点,调整编辑器大小

    这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...

  5. SpringBoot 读取配置文件数据

  6. 小白必看:零基础安装Linux系统(超级详细)

    我们以最新发布的CentOS 8.1为例,学习下如何安装Linux系统 准备工作: 1.一台可以访问互联网的电脑 2.VMware Workstation安装包 3.CentOS8.1镜像(CentO ...

  7. 一文说透 MySQL JSON 数据类型(收藏)

    JSON 数据类型是 MySQL 5.7.8 开始支持的.在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档. 相对字符类型,原生的 JSON 类型具有以下优 ...

  8. 详解 Java 17 中新推出的密封类

    Java 17推出的新特性Sealed Classes经历了2个Preview版本(JDK 15中的JEP 360.JDK 16中的JEP 397),最终定稿于JDK 17中的JEP 409.Seal ...

  9. Node.js 中的进程和线程

    线程和进程是计算机操作系统的基础概念,在程序员中属于高频词汇,那如何理解呢?Node.js 中的进程和线程又是怎样的呢? 一.进程和线程 1.1.专业性文字定义 进程(Process),进程是计算机中 ...

  10. 伪元素选择器,选择器优先级,CSS修改文字属性,CSS修改字体属性,CSS修改其他属性

    伪元素选择器 未使用元素选择器的效果 第一行:伪元素选择器:选择部分内容 第二行:伪元素选择器:选择部分内容 伪元素选择器:选择部分内容 伪元素选择器:选择部分内容 ::selection:选择指定元 ...