- HTTP是什么?答:其全称为Hypertext Transfer Protocol,超文本传输协议,定义了服务器和客户端之间信息交流的格式和传递方式,是万维网数据交换的基础。
- 万维网是什么?答: World Wide Web, 互联网的意思。
- RFC是什么?答:其全称为Request For Comment,请求评议,是一系列关于互联网标准和信息的文件,可以将其理解为互联网(Internet)的设计文档
- Flask Web程序工作流程
WSGI的作用是什么?答:转换HTTP格式的请求数据和Flask程序能够使用的Python数据。
- 报文(message)是什么意思?答:浏览器和服务器之间交互的数据被称为报文。报文分为请求报文和响应报文。
- 如果URL中包含查询字符串或是提交了表单,那么请求报文主体将会是查询字符串或表单数据。
- 常见的HTTP方法有哪些?
- Flask的请求对象request封装了从客户端发来的请求报文,通过它能获取请求报文中的所有数据。
- 如何使用请求对象request的属性来获取请求的URL?
属性 | 值 |
---|---|
path | ‘/hello’ |
full_path | ‘/hello?name=123’ |
host | ‘baidu.com’ |
host_url | ‘http://www.baidu.com’ |
base_url | ‘http://www.baidu.com/hello’ |
url | ‘http://www.baidu.com/hello?name=123’ |
url_root | ‘http://www.baidu.com’ |
- 请求对象request常用的属性和方法有哪些?
- Werkzeug的MultiDict是字典的子类,实现了一个键对应多个值的情况。
- ImmutableMultiDict类继承了MultiDict类,但其值不可更改。
- Flask实例存储了一个路由表app.url_map,其中定义了URL规则和视图函数的映射关系
可以通过flask routes命令查看程序中定义的所有路由,该命令对app.url_map进行了解析
- 可以在app.route()装饰器中通过定义methods参数设置监听HTTP的方法。
- URL中变量部分默认类型为字符串,Flask提供了一些转换器在URL规则里使用。使用方法如:/hello/<int:age>; /hello/<any(xiaoming, xiaoshan):name>
常用的转换器有:
当无法完成类型转换时,会返回404错误。
- 请求钩子Hook是什么?答:请求钩子是在请求处理的不同阶段执行的函数,使用装饰器实现。
常见的请求钩子有哪些?