Django(Python Web框架)

Django是一个开放源代码的Web框架,用Python写的。采用了MTV的框架模式,即模型M,模板T和视图V。它最初被开发是用来管理以新闻内容为主的网站,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。

Django是一个基于MVC构造的框架,但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Model)、模板(Template)和视图(Views),成为MTV模式。他们各自的责任如下:

层次 职责
模型(Model),即数据存取层 处理域数据相关的所有事物:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等
视图(View),即表现层 处理与表现相关的决定:如何在页面或其他类型文件中进行显示
模板(Template),即业务逻辑 存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁

从上表述可以看出Django视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django模板仅仅决定如何展现Django视图指定的数据。或者说,Django将MVC中的视图进一步分解为Django视图和Django模板两个部分,分别决定"展现哪些数据"和"如何展现",使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。

至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,完全可以设计成任意的URL风格,不管是传统的、RESTful的或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用响应的方法就行了,非常方便。程序员把控制层东西交给Django自动完成了,只需要编写少量的代码完成很多的事情。所以,它比MVC框架考虑的问题还要深一步,因为我们大都在写控制层的程序,现在这个工作交给了框架,大大提高了工作效率。

MVC简介

MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互时,不需要重新编写业务逻辑。典型的MVC框架的如下图所示:

其主要的特点有:

  • 优点:耦合性低、重用性高、生命周期成本低、部署快、可维护性高、有利于软件工程化管理;
  • 缺点:没有明确的定义、不适合中小型的应用程序、增加系统结构和实现的复杂性、视图与控制器联系过于紧密、视图对模型数据的访问效率低

Django的MTV介绍

Model(模型):和数据库相关的,负责业务对象与数据库对象(ORM)

Template:放置所有html文件;其目的是将白变量(数据库的内容)如何巧妙的嵌入到html页面中

View:负责业务逻辑,并在适当的时候调用Model和Template

此外,Django还有一个URL分发器,它的作用是将一个个URL的请求页面分别发给不同的views处理,views再调用相应的model和template

Django的安装与验证

Python安装
  • 进入Python官网下载需要版本的Python(建议使用Python3的稳定版本),并进行安装
  • 安装完成之后,使用Win+R,输入cmd进入windows下的命令行模型,输入python

出现如上图所示,则说明python已经正确安装

Django安装

Django的安装官网给出了三种方法可供参考,这里我将给出最常见的方法(pip安装):

  • 首先,使用Win+R,输入cmd,进入windows下的命令行模式
  • 其次,输入下面命令,等待Django安装完成
pip install django

安装完成之后出现如下截图(由于我的环境中已经安装过Django,卸载之后再安装就会使用缓存):

  • 最后,进入python环境,验证Django的安装,如下图所示:

综上,我们的Python+Django环境已经安装成功!

Django 2.0 学习(01):Django初识与安装的更多相关文章

  1. Django 2.0 学习(07):Django 视图(进阶-续)

    接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...

  2. Django 2.0 学习(04):Django数据库

    数据库设置/配置 打开mysite/settings.py,我们会发现Django是用的是默认的数据库SQLite,如下图所示: Django也是支持其它数据库的,比如PostgreSQL.MySQL ...

  3. Django 2.0 学习

    Django django是基于MTV结构的WEB框架 Model 数据库操作 Template 模版文件 View 业务处理 在Python中安装django 2.0 1 直接安装 pip inst ...

  4. Django 2.0 学习(12):Django 模板语法

    Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }} 在Django模板中遍历复杂数据结构的关键是句点字 ...

  5. Django 2.0 学习(19):Django 分页器

    Django 分页器 要使用Django实现分页功能,必须从Django中导入Paginator模块(painator - 分页器) views.py from django.shortcuts im ...

  6. Django 2.0 学习(08):Django 自动化测试

    编写我们的第一个测试 确定bug 幸运的是,在polls应用中存在一个小小的bug急需修复:无论Question的发布日期是最近(最后)的日期,还是将来很多天的日期,Question.was_publ ...

  7. Django 2.0 学习(06):Django 视图(进阶)

    概述 Django中的特方法,该方法代表了Django的Web页面,并且视图具有特定的模板.以博客应用为例进行说明,在博客应用中应该包含下面的视图: 博客主页:显示最近的一些记录: 详细页面:单个详细 ...

  8. Django 2.0 学习(03):Django视图和URL(下)

    接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...

  9. Django 2.0 学习(13):Django模板继承和静态文件

    Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中 ...

随机推荐

  1. bzoj 2120 带修改莫队

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MBSubmit: 7340  Solved: 2982[Submit][Status][Discuss] ...

  2. PHP 个人用到的琐碎代码记录

    查找字符串出现次数的方法 substr_count(string,substring,[start],[length]) 函数延迟代码执行若干秒,若成功,返回 0,否则返回 false. sleep( ...

  3. 来了解一下Mysql索引的相关知识:基础概念、性能影响、索引类型、创建原则、注意事项

    索引的基础概念索引类似于书籍的目录,要想找到一本书的某个特定主题,需要先查找书的目录,定位对应的页码:存储引擎使用类似的方式进行数据查询,先去索引当中找到对应的值,然后根据匹配的索引找到对应的数据行 ...

  4. PAT甲级 1004 树

    思路:直接遍历整棵树判定每个结点是否有孩子,没有则把当前高度的叶子节点数加一. AC代码 #include <stdio.h> #include <string.h> #inc ...

  5. Spring 框架系列之事务管理

    1.事务回顾 (1).什么是事务: 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. (2).事务特性(ACID) 原子性 :强调事务的不可分割 一致性 :事务的执行的 ...

  6. MySQL InnoDB表压缩

    MySQL InnoDB表压缩 文件大小减小(可达50%以上) ==> 查询速度变快(count * 约减少20%以上时间) 如何设置mysql innodb 表的压缩: 第一,mysql的版本 ...

  7. .net core 部署到 iis 步骤及报错解决方法

    我写了一个Asp.net core mvc项目,但是部署在iis发生了502.5的问题一直解决不了. 环境 系统:最强Win10; 工具:轻巧VS Code; 各种百度bing都没有我要的解决方案,说 ...

  8. 电脑中dll文件丢失怎么恢复?

    DLL文件是Windows系统中的动态链接文件,我们在运行程序时都必须链接到dll文件,如果缺少了则无法正常运行,相信大家都会遇到dll文件缺失的情况,那么电脑中dll文件丢失怎么恢复?下面装机之家分 ...

  9. java I/O框架 (四)文件流

    文件读取 FileInputStream FileReader 文件写入 FileOutputStream FileWriter 随机文件读写 RandomAccessFile 一.文件读取 File ...

  10. 关于 frame的一些基本知识

    关于 frame的一些基本知识只是摘抄了一部分,供初学者参考. b.帧速率: 帧速率是每秒显示的图像数.标准影片(NTSC) 是29.97 帧第秒 (fps),电影是每秒24 帧fps.欧洲标准是(P ...