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. Java基础语法Day_05(数组的概念)

    第14节 数组         day05_01_数组的概念 day05_02_数组的定义格式一_动态初始化 day05_03_数组的定义格式二_静态初始化 day05_04_数组的定义格式三_省略的 ...

  2. XCTF练习题---WEB---simple_js

    XCTF练习题---WEB---simple_js flag:Cyberpeace{786OsErtk12} 解题步骤: 1.观察题目,打开场景 2.打开该场景后发现是一个登录界面,随便输入一个密码, ...

  3. ImageKnife组件,让小白也能轻松搞定图片开发

    本期我们给大家带来的是开发者周黎生的分享,希望能给你的HarmonyOS开发之旅带来启发~ 图片是UI界面的重要元素之一, 图片加载速度及效果直接影响应用体验.ArkUI开发框架提供了丰富的图像处理能 ...

  4. 设置Linux系统的交叉编译环境

    1.在Linaro官网上获得交叉编译工具 网址:http://releases.linaro.org/components/toolchain/gcc-linaro/ 从Linaro官网上能找到4.9 ...

  5. 分布式存储之GlusterFS

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 1.glusterfs概述 GlusterFS系统是一个可扩展的网络文件系统,相比其他分布式文件系统,GlusterFS具有 ...

  6. gcc和g++是什么,有什么区别?

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 素材来源:C语言中文网 编辑整理:strongerHua ...

  7. mybatis plus 使用 SQL 保留字(关键字)

    MybatisPlus:使用SQL保留字(关键字)的操作 必须要手动在 entity 的字段上加注解,否则最终会报错,因为 mybatis 或者 mybatis plus 不会自动处理

  8. JavaMetaweblogClient,Metaweblog的java实现-从此上传博客实现全平台

    目录 1. 什么是Metaweblog? 2. Metaweblog的应用 3. 如何使用Metaweblog 4. 本项目介绍 4.1 metaweblog与java之间的关系映射 4.2 使用Ja ...

  9. 455. Assign Cookies - LeetCode

    Question 455. Assign Cookies Solution 题目大意:数组g的大小表示有几个小孩,每个元素表示小孩的食量,数组s的大小表示有多少个饼干,每个元素的大小表示每个饼干的大小 ...

  10. unity---脚本代码报错

    同版本编辑器在不同VS版本下会报错问题解决 解决方法 报错情况 解决方法 打开Unity --->Preferences--->External Tools然后点击:Regenerate ...