## 第十二章 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), ] ```