Flask学习一 基本概念
所有Flask程序必须创建一个程序实例,app = Flask(__name__),
Web服务器使用WSGI(Web Server Gateway Interface)协议把接受自客户端的所有请求都转交给这个对象(app)处理。
一个基本的程序:
1 from flask import Flask 2 3 app = Flask(__name__) 4 5 @app.route('/user/<name>')#使用app.route装饰器,把函数注册为路由(URL到函数的映射关系) 6 def index(name):#视图函数,处理URL请求 7 return 'hello name'#返回的响应response 8 9 if __name__ == '__main__': 10 app.run(debug=True)#使用run方法启动Flask集成的开发Web服务器
一些基本概念:
1、程序和请求上下文
Flask使用上下文临时把某些对象变为全局可访问,与此同时却不会干扰其他线程。
current_app | 程序上下文 | 当前激活程序的实例 |
g | 程序上下文 | 处理请求时用作临时存储的对象 |
request | 请求上下文 | 请求对象,封装客户端的HTTP请求 |
sessioin | 请求上下文 | 用户会话,用于存储请求之间需要记住的值的字典 |
2、请求钩子
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。
请求钩子使用装饰器实现。
before_first_request | 注册一个函数 | 在处理第一个请求之前运行 |
bdefor_request | 注册一个函数 | 在每次请求之前运行 |
after_request | 注册一个函数 | 如果没有未处理的异常抛出,在每次请求之后运行 |
teardown_request | 注册一个函数 | 即使有未处理的异常,也在每次请求之后运行 |