三、request请求对象
核心对象,请求request
今天,还是用上次文件结构目录,只是里面的文件会有不同。


从地址栏获取信息
显示请求的地址里的路径是什么

看请求是什么样的
method = request.method
接下来我们来看一个特殊的情况
再打开一个终端窗口,激活虚拟环境
直接进入Python,$ python3

$ print (request.path) 会出错,确实是有这个类,但是没有上下文环境,其实就是浏览器帮我们做的,你以http的协议去请求,但是你在代码中访问就没有。不过有时候确实需要在终端来进行相应的模拟,那怎么办呢。

我们做网站编程,理所当然用浏览器来进行测试,但是我们要明白浏览器在背后帮我们做的事情,这只是一部分。
上下文:某一个操作,或者代码的运行,他是需要一系列的前因后果,或者一些环境。
request的成员
path = request.path
method = request.method
name = request.args.get('name', '未找到') args可以找到地址栏里的key,类似http://127.0.0.1:5000/rq/?name=tom,的这个tom。
地址栏编码:
127.0.0.1:5000/rq?name=tom&jerry 只取到tom就结束了,但是我的意图是两个都取到
127.0.0.1:5000/rq?name=tom%20jerry %20是一个空格
127.0.0.1:5000/rq?name=tom%26jerry %26是一个&符号


解码:

用flask来做表单的提交
get提交的信息从地址栏里去获取
post提交的信息就是表单的提交,我们从form里去获取


想获取地址栏里的信息,又想获取表单提交的信息该如何做
.values['name'] 查询字符串/表单数据


只是了解一下就可以了,在实际的开发中,还是分开用比较好。
头部的信息

.headers 头部信息 .headers['User-Agent']浏览器
.headers['Host'] 主机
等等,其实头部信息不是太重要,做爬虫的时候可以参考。
这是本次教程的Demo,可以下载来学习。