欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flask之初学者(七)

程序员文章站 2022-10-20 08:29:54
Flask的g对象 g可以可以看作是单词global的缩写,使用“from flask import g”导入,g对象的作用是保存一些在一次请求中多个地方的都需要用到的数据,这些数据可能在用到的时候都需要去进行判断或其他处理之后才能获得,如果在第一次获取的时候就存放到g对象中,就可以避免一些不必要的 ......

Flask的g对象

  g可以可以看作是单词global的缩写,使用“from flask import g”导入,g对象的作用是保存一些在一次请求中多个地方的都需要用到的数据,这些数据可能在用到的时候都需要去进行判断或其他处理之后才能获得,如果在第一次获取的时候就存放到g对象中,就可以避免一些不必要的操作。比如在某一个函数中定义了“g.username='Jason'”(可能为了定义这个值,会进行一些别的操作,比如数据库查询判断等,定义好了这个值后就不用再每次用到它的时候都去进行这些操作了),那么在其他地方就可以直接使用“g.username”来获取这个值,或者使用“hasattr(g, 'username')”判断g中有没有这个值,需要特别注意的是当你处理完这次请求并返回数据给客户端浏览器后,这个g对象中所有的值都会被删除掉,也就是它只有在一次请求中有效。

 


 

Flask钩子函数(hook)

  钩子(hook)函数最大的特点其实就是会将定义的钩子函数在某个特定的位置自动执行,而不用每次需要用到的时候手动去定义它的执行,当然不同的钩子函数有不同作用和效果。常用的钩子函数有(app为Flask对象):

  1. app.before_request:是一个装饰器,被装饰的函数会在请求处理之前执行(即执行视图函数之前执行)。
  2. app.context_processor:是一个装饰器,被装饰的函数一般返回一个字典,字典中的key字符串会被渲染为HTML页面中的变量,变量的值就是对应key的value,重点在于返回的这个字典可以在任何HTML页面中直接使用,而不用通过url传参的方式传入HTML中。