Http协议:
- 超文本传输协议:规定了客户端与服务端消息传输的格式
Http四大特性:
1.基于TCP/IP协议作用于应用层的协议
2.基于请求响应
3.无状态(不管连接多少次都当作第一次来)
4.无连接(一次请求对应一次响应,响应结束http立马断开)
数据格式之请求:
请求首行 b'GET / HTTP/1.1\r\n
请求头(一堆k,v键值对)\r\n
空格\r\n(重点)
请求体(post请求携带的数据)
数据格式之响应:
响应首行
响应头(一堆k,v键值对)
空格\r\n(重点)
响应体(post请求携带的数据)
响应状态码:
1xx:服务器成功接收数据正在处理,可以继续提交其他数据
2xx:请求成功服务器已经将请求的数据发送给你
3xx:重定向
- 4xx:请求资源不存在或者错误
5xx:服务器错误
动静态网页:
- 静态网页:
页面上的数据都是写死的不变的
- 动态网页:
页面上的数据是动态获取到的,比如后端获取当前时间….传递给前端页面
模版渲染:
后端生成的数据直接传递给前端页面使用(并且前端页面可以灵活的操作修改数据)>>>模版语法
- 模版渲染 模版语法需要依赖于第三方模块jinja2
模板语法 jinja2支持前端直接使用类似于python的语法操作数据
jinja2的
<p>{{ user_dic }}</p>
<p>{{ user_dic.name }}</p>
<p>{{ user_dic['password'] }}</p>
<p>{{ user_dic.get('name') }}</p>
// 前端的for循环
{% for user in user_dict %} <!--[{},{},{},{}]-->
<tr>
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.password }}</td>
</tr>
{% endfor %}
什么是web框架
- python三大主流web框架
Django:大而全,自带了很多功能模块
Flask:轻量级框架,自带的功能模块少,大部分都是依赖于第三方模块
Tornado:原生的异步非阻塞,主要用在处理高io多路复用的情况
主要的功能:
a:socket
b:路由与视图函数
c:模板渲染
Django:
a用的别人的 wsgiref
b自己写的
c自己写的
Flask:
a用的别人的 werkzeug
b自己写的
c用的别人的 jinja2
Tornado:
a,b,c都是自己写的