初学 Django

HTTP & DJANGO

一、Web概念

1.1 使用http协议访问web
1.2 HTTP协议简介
1.3 HTTP协议概述
1.4 HTTP工作原理
1.5 HTTP请求方法
1.6 HTTP状态码

二、Django框架

2.1、Django框架的特点
2.2、MVT & MVC
2.3、Django的安装
2.4、Django创建项目
2.5、Djanjo在cmd中启动项目
2.6、Django创建app
2.7、Django项目文件的介绍
2.8 settings.py 配置

一、Web概念

1.1 使用http协议访问web

​ Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议的协议作为规范,完成从客户端到服务器端等一系列运作流程。而协议是指规则的约定。可以说,Web是建立在HTTP协议上通信的。

1.2 HTTP协议简介

​ 超文本传输协议(英文:Hyper**Text **Transfer **Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

​ HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

​ 2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。

1.3 HTTP协议概述

​ HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个"中间层”,比如代理服务器、网关或者隧道(tunnel)。

1.4 HTTP工作原理

​ HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

1.5 HTTP请求方法

​ HTTP/1.1协议中共定义了八种方法(也叫"动作”)来以不同方式操作指定的资源:

GET

​ 向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

HEAD

​ 与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

POST

​ 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

PUT

​ 向指定资源位置上传其最新内容。

DELETE

​ 请求服务器删除Request-URI所标识的资源。

TRACE

​ 回显服务器收到的请求,主要用于测试或诊断。

OPTIONS

​ 这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

CONNECT

​ HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

注意事项:

方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。
HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当匹配下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。例如PATCH(由 RFC 5789 指定的方法)用于将局部修改应用到资源*。*
请求方式: get与post请求

GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.(请求头里面那个content-type做的这种参数形式,后面讲) POST方法是把提交的数据放在HTTP包的请求体中.
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

1.6 HTTP状态码

所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。状态代码的第一个数字代表当前响应的类型:

1xx消息——请求已被服务器接收,继续处理

2xx成功——请求已成功被服务器接收、理解、并接受

3xx重定向——需要后续操作才能完成这一请求

4xx请求错误——请求含有词法错误或者无法被执行

5xx服务器错误——服务器在处理某个正确请求时发生错误

状态码 说明

200 | 成功
301 | 永久重定向
302 | 临时重定向
400 | 请求的数据错误
401 | 要求身份认证
403 | 拒决请求(身份认证失败)
404 | 页面没有被找到。(一般是地址不对)
405 | 请求的方法不对
500 | 服务器内部错误

二、Django框架

2.1、Django框架的特点

​ 相对于 Python 的其他 Web 框架,Django 的功能是最完整的,Django 定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着 Django 模块之间紧密耦合。

Django 的主要特点如下:

完善的文档:经过 10 余年的发展和完善,Django 官方提供了完善的在线文档,为开发者解决问题提供支持。

集成 ORM 组件:Django 的 Model 层自带数据库 ORM 组件,为操作不同类型的数据库提供了统一的方式。

URL 映射技术:Django 使用正则表达式管理URL映射,因此给开发者带来了极高的灵活性。

后台管理系统:开发者只需通过简单的几行配置和代码就可以实现完整的后台数据管理Web控制台。

错误信息提示:在开发调试过程中如果出现运行异常,Django 可以提供非常完整的错误信息帮助开发者定位问题。

2.2、MVT&MVC

MVC 是 Model-View-Controller 的缩写,其中每个单词都有其不同的含义:

Modle 代表数据存储层,是对数据表的定义和数据的增删改查;

View 代表视图层,是系统前端显示部分,它负责显示什么和如何进行显示;

Controller 代表控制层,负责根据从 View 层输入的指令来检索 Model 层的数据,并在该层编写代码产生结果并输出。

MVC 设计模式的请求与响应过程描述如下:

用户通过浏览器向服务器发起 request 请求,Controller 层接受请求后,同时向 Model 层和 View 发送指令;

Mole 层根据指令与数据库交互并选择相应业务数据,然后将数据发送给 Controller 层;

View 层接收到 Controller 的指令后,加载用户请求的页面,并将此页面发送给 Controller 层;

Controller 层接收到 Model 层和 View 层的数据后,将它们组织成响应格式发送给浏览器,浏览器通过解析后把页面展示出来。

MVC 的 3 层之间紧密相连,但又相互独立,每一层的修改都不会影响其它层,每一层都提供了各自独立的接口供其它层调用,MVC 的设计模式降低了代码之间的耦合性(即关联性),增加了模块的可重用性,这就是 MVC 的设计模式。

Django 借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个层次,也就是 MTV 设计模式;

Model:数据存储层,处理所有数据相关的业务,和数据库进行交互,并提供数据的增删改查;

Template:模板层(也叫表现层)具体来处理页面的显示;

View:业务逻辑层,处理具体的业务逻辑,它的作用是连通Model 层和 Template 。

同样我们也对 MTV 设计模式的请求与响应过程进行描述:

用户通过浏览器对服务器发起 request 请求,服务器接收请求后,通过 View 的业务逻辑层进行分析,同时向 Model 层和 Template 层发送指令;

Mole层与数据库进行交互,将数据返回给 View 层;

Template 层接收到指令后,调用相应的模板,并返回给 View 层;

View 层接收到模板与数据后,首先对模板进行渲染(即将相应的数据赋值给模板),然后组织成响应格式返回给浏览器,浏览器进行解析后并最终呈现给用户。

2.3、Django的安装

默认安装最新版本 pip config set global.index-url
在这里插入图片描述

指定安装版本 pip install django==2.2.20
在这里插入图片描述

2.4、Django创建项目

创建项目 django-admin startproject project-name(项目名)
在这里插入图片描述

2.5、Djanjo在cmd中启动项目

python manage.py runserver
在这里插入图片描述

2.6、Django创建app

python manage.py startapp app01(app名称)
在这里插入图片描述

2.7、Django项目文件的介绍

创建好 Django 项目之后,它已经是具备了一些基本的文件及文件夹

manage.py: 用来管理当前项目的一个命令行工具
mysite: 项目主文件夹,包含了项目最基本的配置文件及路由文件
–init–.py: 空文件 ,用来指明当前的 mysite 为一个可导入的模块包
settings.py: 项目主要配置文件
wsgi.py: 项目部署 WSGI 并发服务器所需要的配置文件

2.8 settings.py 配置

这个文件包含了诸多未来我们会操作的 Django 配置,其中默认提供的选项解释如下


DEBUG:调试模式,在这个模式下,你可以很清晰的看到出错信息,如果关闭了,那么出错将会变为状态码或者隐蔽性更高的报错页面

ALLOWED_HOSTS:当前主机所拥有的IP哪些可以被外界使用访问Django

INSTALL_APPS: Django 项目中所有使用的应用名称,自创建子应用也要加到这里,不然 ORM 数据库无法被识别到

MIDDLEWARE:中间件,用来在 请求 request 和 响应 reponse 过程中添加功能,比如确保安全性,传输保存 Session 等

ROOT_URLCONF:主路由配置文件,字符串填写 url.py 文件路径

TEMPLATES:模板文件配置项

WSGI_APPLICATION:WSGI 服务器配置项,找到当前 django 下的 wsgi 引入 APP 文件

DATABASES:数据库配置项,默认使用SQLite3,一个本地文件数据库

AUTH_PASSWORD_VALIDATORS :检查用户密码强度的验证程序列表,不过是针对 admin 组件下的用户,而非自定义

LANGUAGE_CODE:所使用语言文件,一般国内项目采用 zh-Hans

TIME_ZONE:所使用时区,一般国内项目采用 Asia/Shanghai

USE_I18N:国际化支持 18 表示 Internationalization 这个单词首字母 I 和结尾字母 N 之间的字母有 18 个

USE_L10N:是*localization*的缩写形式,意即在 l 和 n 之间有 10 个字母

USE_TZ:开启了*Time Zone*功能,则所有的存储和内部处理,包括 print 显示的时间将是是 UTC 时间格式

STATIC_URL:访问静态资源时的URL路径```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值