## 第十二章 Django
### 12.1 基本概念和理论
tcp/ip 五层模型:
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
socket 套字节 位于应用层和传输层之间的虚拟层
百度的服务器 socket服务端的原理
1. 创建socket服务端
2. 绑定ip和端口
3. 监听
4. 等待连接
5. 接收数据
6. 返回数据
7. 断开链接
浏览器 socket原理
5.链接服务端
6.发送数据
7.接收数据
8.断开链接
web框架 ——> socket服务端
- [ ] | 请求方式 | 空格 | URL | 空格 | 协议版本 | 回车符 | 换行符 | 这是请求行 |
| ---------- | ------ | -------- | ------ | -------- | ------ | ------ | ------------ |
| 头部字段名 | : | 值 | 回车符 | 换行符 | | | 这是请求头部 |
| | | 。。。。 | | | | | 这是请求头部 |
| 头部字段名 | : | 值 | 回车符 | 换行符 | | | 这是请求头部 |
| 回车符 | 换行符 | | | | | | |
| 请求的数据 | | | | | | | 这是请求数据 |
状态码:
- 1xx
- 2xx
- 3xx 重定向
- 4xx 请求的错误
- 5xx 服务器的错误
请求方式
- get 获取一个页面、图片
- post 提交数据
浏览器和服务端的交互
- 请求:浏览器——>服务端
- GET
- "请求方式 url路劲 协议版本\r\n
- k1:v1\r\n
- k1:v1\r\n
- \r\n
- 数据"
- 响应(response):服务器——>浏览器
- "协议版本 状态码 状态码描述\r\n
- k1:v1\r\n
- k2;v2\r\n
- \r\n
- 数据"
web框架的功能:
1. socket收发小溪 -wsgiref -uwsgi
2. 根据不同的路径返回不同的内容
3. 返回动态页面(自妇产的替换) ——jinja2
django的简单使用
urls.py
```python
#导入
from django.shortcuts import HttpResponse,render
#函数
def index(request):
return render(request,"index.html")
#url和函数的对应关系
urlpatterns = [
url(r'^admin/',admin.site.urls),
url(r'^index/',index),
]
```