Django入门——工作流&开发模式

1.URL组成

URL地址有以下几部分组成。

  1. 协议类型:HTTP/HTTPS
    1. HTTP(HyperText Transfer Protocol,超文本传输协议)是从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输内容减少。它不仅保证了计算机正确快速地传输超文本文档,还能确定传输文档中的某一部分,以及哪部分内容首先显示等。
    2. HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,超文本安全传输协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
  2. 主机地址:test.info,127.0.0.1
    1. test.info为一个网址,网址通过域名解析服务器找到对应的IP主机。
    2. 127.0.0.1为一个IP地址,不过,该IP地址较为特殊,用来指向本机。
  3. 端口号:8000,80
    1. 一台主机上有很多应用,不同的应用占用不同的端口号,除了要指定主机(网址或IP地址)外,还要进一步指定相应的端口号才能访问到具体的应用。
    2. 前面在运行Django服务器时,默认使用8000端口号,所以,在浏览器中输入IP地址之后,还要指向端口号,才能访问到Django应用。
  4. 路径:/index/,/admin/
    1. 一般用来表示主机上的一个目录或文件地址。

2.URLconf

Django处理一个请求的过程如下:

为了给一个应用设计URL需要创建一个Python模块,这个Python模块通常称为URLconf(URL configuration)。

  1. Django使用的是根URLconf模块。这个值通常是通过setting.py文件中的ROOT_URLCONF设置。
  2. Django加载URLconf模块,并通过urls.py中寻找可用的urlpatterns。
  3. Django一次匹配每个URL模式,在与请求的URL匹配的第一个模式处停下来。
  4. 一旦其中的一个匹配上,则Django将请求指向对应的视图函数处理。
  5. 如果没有匹配到,或者过程中抛出一个异常,则Django将调用一个适当的错误处理视图。

3.views视图

视图函数,简称视图,是一个简单的Python函数,它接受Web请求并且返回Web响应。响应可以是一张HTML网页、一个重定向、一个404错误、一个XML文档或者一张图片......是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在Python目录下面即可。

4.templates模板

作为Web框架,Django需要一种非常便利的方法动态地生成HTML。最常见的做法是使用模板。模板包含所需HTML输出的静态部分以及一些特殊的语法,描述如何将动态内容插入数据中。当然,我们也可以在模板中使用任何前端技术,比如CSS、JavaScript等。

 


MTV开发模式

在学习Django之前,先熟悉一下Django数据驱动Web应用的总体设计。Django的设计鼓励松耦合以及对应用程序中不同部分的严格分隔。遵循这个概念的话,要想修改应用的某部分而不影响其他部分就比较容易了。在视图函数中,我们已经讨论了通过模板系统把业务逻辑和表现逻辑分隔开的重要性。在数据库层中,我们对数据访问逻辑也应用了同样的理念。把数据存取逻辑、业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的Model-View-Controller(MVC)模式。在这个模式中,Model代表数据存取层,View代表的是系统中选择显示什么和怎么显示的部分,Controller指的是系统中根据用户输入及需要访问模型,以决定使用哪个视图的哪部分。

1.为什么用缩写

像MVC这种明确定义模式的主要作用是改善开发人员之间的沟通。比如告诉同事,“让我们采用抽象的数据存取方式,然后单独划分一层来显示数据,并且在中间加上一个控制它的层”,一个通用的说法会让你受益,你只需说:“我们在这里使用MVC模式吧。”。Django紧紧地遵循这种MVC模式,可以称得上是一种MVC框架。下面是Django中M、V和C各自含义:

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

2.MTV开发模式

由于C是由框架自行处理,而Django里更关注的是模型(Model)、模板(Template)和视图(Views),因此Django也被成为MTV框架。在MTV开发模式中:

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

如果你熟悉其他的MCV Web开发框架,比如说Ruby on Rails,那么你可能会认为Django视图是控制器,而Django模板是视图。很不幸,这是对MVC不同诠释中,视图用来描述要展现给用户的数据;而不是数据如何展现以及展现哪些数据。相比之下,Ruby on Rails及一些同类框架提倡控制器负责决定向用户展现哪些数据,而视图仅决定如何展现数据,而不是展现哪些数据。

两种诠释中没有哪个更加正确一些,重要的是要理解底层的概念。

 

 

 

print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)

猜你喜欢

转载自blog.csdn.net/qq_41470573/article/details/84879419