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. MKL与VS2019配置方法

    VS2019配置oneAPI并调用MKL库 oneAPI oneAPI是一个跨架构的编程工具,旨在简化跨GPU.CPU.FPGA和AI加速器之间的编程,可以与英特尔自身设备,或其他厂商的芯片配合使用, ...

  2. CRUSE: Convolutional Recurrent U-net for Speech Enhancement

    CRUSE: Convolutional Recurrent U-net for Speech Enhancement 本文是关于TOWARDS EFFICIENT MODELS FOR REAL-T ...

  3. HashMap源码理解一下?

    HashMap 是一个散列桶(本质是数组+链表),散列桶就是数据结构里面的散列表,每个数组元素是一个Node节点,该节点又链接着多个节点形成一个链表,故一个数组元素 = 一个链表,利用了数组线性查找和 ...

  4. k8s入门之PV和PVC(八)

    某些应用是要持久化数据的,如果直接持久化在pod所在节点,当pod因为某种原因重建或被调度另外一台节点,是无法访问到之前持久化的数据,所以需要一个公共存储数据的地方,无论pod删除重建或重新调度到其他 ...

  5. 【Java分享客栈】一文搞定京东零售开源的AsyncTool,彻底解决异步编排问题。

    一.前言 本章主要是承接上一篇讲CompletableFuture的文章,想了解的可以先去看看案例: https://juejin.cn/post/7091132240574283813 Comple ...

  6. 面试题|Docker的优缺点

    开源Linux 长按二维码加关注~ 上一篇:Linux中几个正则表达式的用法 Docker解决的问题: 由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环 ...

  7. 基于SqlSugar的开发框架循序渐进介绍(4)-- 在数据访问基类中对GUID主键进行自动赋值处理

    我们在设计数据库表的时候,往往为了方便,主键ID一般采用字符串类型或者GUID类型,这样对于数据库表记录的迁移非常方便,而且有时候可以在处理关联记录的时候,提前对应的ID值.但有时候进行数据记录插入的 ...

  8. 组织:ITU

    国际电信联盟(International Telecommunication Union -- ITU)是联合国专门机构之一,主管信息通信技术事务,由无线电通信.标准化和发展三大核心部门组成,其成员包 ...

  9. CentOS配置epel源

    https://opsx.alibaba.com/mirror epel 配置方法 1.备份(如有配置其他epel源) mv /etc/yum.repos.d/epel.repo /etc/yum.r ...

  10. MySQL分库分表-理论

    分库分表的几种方式 把一个实例中的多个数据库拆分到不同的实例 把一个库中的表分离到不同的数据库中 数据库分片前的准备 在数据库并发和负载没有达到限制时,不推荐水平拆分 对一个库中的相关表进行水平拆分到 ...