Skip to content

Latest commit

 

History

History
256 lines (183 loc) · 4.91 KB

File metadata and controls

256 lines (183 loc) · 4.91 KB
Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0577
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在: 
	- 个人网站: `https://oeasy.org` 
	- 蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
	- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
	- Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

前端和后端

我们来回顾一下 😌

  • 上- 通过 文本框 录入最大值
    • 计算了 从1开始的累加
    • 有两种方式
      • 前端 js
      • 后端 python
  • 后端的计算 需要
    • 前端发请求
    • 后端做响应

图片描述

  • 可是究竟
    • 什么是请求
    • 什么又是响应呢?🤔

堂倌

  • 客人 发出请求
    • 我要普洱

图片描述

  • 堂倌进行响应
    • 给您沏上
  • 如果没有普洱
    • 就实话实说
    • 找不到该茶(404)

请求和响应

  • 客户端浏览器发出请求

图片描述

  • 服务器赶紧进行响应
    • 给您页面
  • 如果没有页面
    • 就告诉您找不到该页(404)

观察

图片描述

  • 有眼色
  • 情商高
  • 有胆量
  • 什么是好堂倌呢?

经验

图片描述

  • 一进店人家就知道
    • 你是买东西的还是闲逛的
    • 两人一起是什么关系
  • 什么是好服务器呢?

服务器

  • 好的服务器
  • 知道用户想要的是什么
  • 用户是怎么过来的
    • 电脑版
    • 手机版
    • 微信小程序版

图片描述

  • 那服务器是怎么知道的呢?

页面访问

  • 发送网页到客户端时
    • 不但发送网页
    • 而且发送请求头信息
  • 就像老信封一样
    • 把收件人姓名、邮编、地址
    • 返回地址
    • 写清楚

图片描述

  • http信封
    • 具体都包括什么?

请求头

  • 包括
    • 请求行
      • 请求方法
      • 地址URI
      • 协议版本
    • 首部字段 header
      • Host
      • ...
    • 主体

图片描述

  • 可以看看
    • 这个请求头
    • header吗?

观察请求头

图片描述

  • 服务器能看到
    • 这些请求头吗?
  • 我们写一个试试

代码

  • 请求头
    • 能在 python中
    • 看到吗?
from flask import Flask,request

app = Flask(__name__)

@app.route('/')
def index():
    headers = request.headers
    print(headers)
    return "i search headers!"


if __name__ == "__main__":
    app.run(debug=True)

图片描述

  • 请求头 可以直接在浏览器里看到吗?

直接输出请求头

from flask import Flask,request

app = Flask(__name__)

@app.route('/')
def index():
    headers = request.headers
    return dict(headers)


if __name__ == "__main__":
    app.run(debug=True)
  • 访问成功!

图片描述

  • 和F12在 网络中看到一样!!!

响应头

  • 可以在浏览器中查看到

图片描述

  • 得到响应
    • 也有响应头

图片描述

观察百度搜索的参数

  • 可以看到
    • 路由s 对应着 搜索

图片描述

  • 响应头也可以在浏览器中输出吗?

输出响应头

from flask import Flask,request,make_response

app = Flask(__name__)

@app.route('/')
def index():
    headers = request.headers
    return dict(headers)

@app.route("/res")
def index2():
    response = make_response("ok")
    print(response)  # <Response 2 bytes [200 OK]>
    response.headers["org"] = "oeasy"  # 自定义响应头
    response.status_code = 201  # 自定义响应状态码
    d = dict()
    for key,value in response.headers:
        d[key] = value
    return d

if __name__ == "__main__":
    app.run(debug=True)
  • 在浏览器中访问

图片描述

  • 我们总结一下

请求和响应

  • 请求里面包括的是
    • 浏览器客户端的信息
    • 所请求的资源
  • 响应里面包括的是
    • 服务器的信息
    • 状态码
    • 请求资源的具体内容

图片描述

  • 可以让服务器更好地了解客户
  • 可以让客户更好地使用服务

总结 🤨

  • 我们这次了解了 请求和响应
    • 请求就是客户发出的订单
    • 响应就是堂倌做出的反应
    • 堂倌会看人下菜碟
    • 来了请求
    • 能把浏览器基本信息都得到
  • 只有两端都了解
    • 才能促进中间接口的进化
  • 请求和响应这套东西
    • 能做点什么呢?
  • 下次再说!👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。