Django学习笔记(http协议与django安装)
Django入门
HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。
http协议的特性
- 基于tcp/ip协议之上的应用层协议
- 基于请求-响应模式
请求是先由客户端发出,服务端响应并返回,服务端在没有收到请求的情况下不好发送响应
- 无状态保存
HTTP协议不保存状态,自身不对请求和响应之间的通信状态进行保存。也就是说,协议对发送的请求和响应都不做持久化处理。
但是很多网站当前页面跳转别的页面之后仍需要保持登录状态,这是就引入了cookie技术,有了cookie再用http协议通信就可以管理状态了
- 无连接
无连接的意思是限制每次连接只处理一个请求。服务端处理完请求就即刻断开连接,这种方式可以节约传输时间。
http请求协议与响应协议
http协议包含浏览器发送数据给服务器所需的请求协议与服务器发送数据到浏览器的请求协议。
请求端(客户端)的hppt报文称为请求报文,响应端(服务器端)的称为响应报文
# 请求首行
# GET / HTTP/1.1\r\n
# # 请求头
# Host: 127.0.0.1:8001\r\n
# Connection: keep-alive\r\n
# Cache-Control: max-age=0\r\n
# Upgrade-Insecure-Requests: 1\r\n
# User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36\r\n
# Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
# Accept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'
# # 请求体(get请求,请求体为空)
POST请求
# 请求首行
POST /?name=lqz&age=18 HTTP/1.1\r\n
# 请求头
Host: 127.0.0.1:8008\r\nConnection: keep-alive\r\nContent-Length: 21\r\nCache-Control: max-age=0\r\nOrigin: http://127.0.0.1:8008\r\nUpgrade-Insecure-Requests: 1\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\nReferer: http://127.0.0.1:8008/?name=lqz&age=18\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\nCookie: csrftoken=7xx6BxQDJ6KB0PM7qS8uTA892ACtooNbnnF4LDwlYk1Y7S7nTS81FBqwruizHsxF\r\n\r\n
# 请求体
name=abc&password=123'


请求方式:get与post请求
- GET提交的数据会放在URL后,以?分割URL和传输的数据,参数之间用&相连。POST是把提交的数据放在HTTP包的请求体中
- GET提交的数据大小有限制(URL长度限制),POST提交的数据没有限制
- GET与POST请求在服务端获取请求数据方式不同。
响应状态码

URL简介
统一资源定位符是互联网上标准资源的地址,互联网上的每个文件都有一个唯一的URL。
协议://IP:端口(80)/路径?name=abc&age=123
?之前的是请求路径,?之后的是请求数据部分
Django框架
一、django简介
djangon使用的是MTV模式他与MVC模式本质相同,只是定义上有点不同。
MVC
MVC就是将应用分为模型(M),视图(V),控制器(C)三层,他们之间以一种插件式、松耦合的方式连接在一起,模型(M)负责业务对象与数据库的映射(ORM),视图(V)赋值与用户的交互,控制器接受用户的输入

MTV
- 模型(Model):负责业务对象和数据库的关系映射(ORM).
- 模板(Template):负责如何把页面展示给用户(html)
- 视图(View):负责业务逻辑,并在适当时候调用Model和Template
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

用户通过浏览器向服务器发起一个请求(request),这个请求访问视图函数(如果不涉及数据调用,视图函数返回一个模板),视图函数调用模型,模型去数据库查找数据,如何逐级返回,视图函数把返回的数据填充到模板空格中,最后返回页面给用户。
二、Django安装
1.安装
方式一:在命令行输入:pip3 install django
pip install django==1.11.9 -i http://pypi.hustunique.org/simple 指定版本号,指定国内镜像
方式二:使用pycharm
2.创建一个django project
命令创建:django-admin.py startproject mysite
创建app:python3 manage.py startapp app01
3.文件目录介绍
-manage.py---项目入口,执行一些命令
-项目名
-settings:全局配置信息
-urls:总路由,请求地址跟视图函数的映射关系
-app名字
-migrations:数据库迁移的记录
-models.py 数据库表模型
-views 视图函数
Django学习笔记(http协议与django安装)的更多相关文章
- Django学习笔记(4)——Django连接数据库
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...
- Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...
- python Django 学习笔记(五)—— Django admin自动管理界面
1,激活管理界面 修改settings.py MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.c ...
- Django学习笔记(一)Django基础
新建项目 django-admin startproject my_site #会在当前目录新建my_site目录,可自行修改目录名 django-admin startproject my_site ...
- Django学习笔记(二)——django数据库的使用
1.模型——SQLite3数据库使用 使用django的数据库必须创建一个app python manage.py startapp check 创建app 此时manage.py的目录下会多一个c ...
- python Django 学习笔记(一)—— Django安装
注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...
- 【转载】MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
http://blog.csdn.net/xukai871105/article/details/39252653 0 前言 MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联 ...
- python之Django学习笔记(二)---Django从工程创建、app创建到表建模在页面的显示
创建工程: 在命令行中切换目录至需要创建工程的目录,然后在命令行中输入如下命令创建djangoTestPro工程 D:\PycharmProjects\untitled\MyTestProject&g ...
- Django学习笔记第一篇--Hello,Django
一.Django的安装: 1.python虚拟运行的环境的安装以及安装django: sudo pip install virtualenv export VIRTUALENV_DISTRINUTR= ...
随机推荐
- [Alpha阶段]第四次Scrum Meeting
Scrum Meeting博客目录 [Alpha阶段]第四次Scrum Meeting 基本信息 名称 时间 地点 时长 第四次Scrum Meeting 19/04/08 大运村寝室6楼 50min ...
- Microsoft Visual Studio Tools for AI
https://www.visualstudio.com/zh-hans/downloads/ai-tools-vs/ 开发.调试和部署深度学习和 AI 解决方案 Visual Studio Tool ...
- EasyTouch5ForSiki学院
总结: 这里面的一些功能,就可以拿来做移动或者PC的很多功能了,这是一个很有用的插件. 禁用0618错误 EasyTouch4_x的写法: using HedgehogTeam.EasyTouch; ...
- git 忽略部分文件类型的同步
场景 利用 pycharm 进行代码操作的时候会自动创建 .idea/ 文件夹 特么我每次随便做点操作.这里面的东西也会随着自动改一些 一开始开始无视 如果是多人协同开发会导致代码合并相关的问题 因此 ...
- Magento2 可配置产品解决SKU流程
选择可配置产品: 填写必填信息与库存 创建配置 执行四步后完成创建:4.1:选择需要的规格属性: 4.2:选择组合需要的属性值:4.3:根据您的选择,将创建3个新产品.使用此步骤自定义新产品的图像和价 ...
- Python【第四篇】函数、内置函数、递归、装饰器、生成器和迭代器
一.函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 1.定义 def 函数名(参数): ...
- maven 使用 log4j
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可 ...
- vue---由nextTick原理引出的js执行机制
最开始查看nextTick这个方法的时候,眼瞎看成了nextClick...我还在疑问难道是下一次click之后处理事件... 然后用这个方法的时候,就只知道是用在DOM更新之后调用回调方法. 这时就 ...
- 存在多个 AJAX 任务
实现的效果: 这两个Ajax任务可同时实现,也可单独实现. 标准的函数: var xmlhttp; function loadXMLDoc(url,ufunc){ if(window.XMLHttpR ...
- python集合(set)的运算
1.交集 In [1]: a = {1,2,3,4} In [2]: b = {3,4,5,6} In [3]: a & b Out[3]: {3, 4} In [4]: a.intersec ...