摘要:
若安装flask是未默认安装blinker,则pip install blinker 使用信号分为3步,第一是定义一个信号,第二是监听一个信号,第三是发送一个信号 1.定义信号:定义信号需要使用到blinker.Namespace来创建一个命名空间 from blinker import Names 阅读全文
摘要:
errorhandler:在发生一些异常的时候,如404、500,如果要自定义处理这些错误,就可以使用errorhandler来处理,使用errorhandler需要注意几点: 1.在errorhandler装饰的钩子函数下,要返回相应的状态码 2.在errorhandler装饰的钩子函数中,必须写 阅读全文
摘要:
context_processor:使用这个钩子函数,必须返回一个字典,这个字典的值在所有模板中都可以使用,这个钩子函数作用是,如果一些在很多模板中都要用到的变量,那么就可以使用此钩子函数来返回,而不用在每个视图函数中的render_template()中去写,这样代码更加简洁和好维护,此函数必须返 阅读全文
摘要:
在flask中钩子函数是使用特定的装饰器装饰的函数,用于在正常执行的代码中,插入一段自己想要执行的代码(hook) before_first_request:flask项目第一次部署后指向的钩子函数,类似于unittest的setupClass before_request:请求到达flask,但是 阅读全文
摘要:
保存全局对象的g对象g对象是在整个flask应用运行期间都是可以使用的,并且也是和request一样,是线程隔离的,这个对象是专门用来存放开发者自己定义的一些数据,方便在整个flask程序中都可以使用,一般使用就是将一些经常会用到的数据绑定到上面,以后就直接从g上面取就可以了,而不需要通过传参的方式 阅读全文
摘要:
app上下文: 先看现象 current_app源码 手动入栈 app_context()源码 with语句入栈 request上下文 不在app上下文中 即使手动入栈也会报错,不在请求上下文中 url_for()源码 手动推入请求上下文 应用上下文和请求上下文都是存放到一个LocalStack的栈 阅读全文
摘要:
Local对象在flask中,类似于request对象,其实是绑定到了werkzeug.local.Local对象上,这样即使是同一个对象,在多线程中都是隔离的,类似的对象还有session以及g对象 Thread Local对象只要满足绑定到这个对象上的的属性,在每个线程中都是隔离的,那么此对象就 阅读全文
摘要:
app里面还是要绑定CSRFProtect from flask_wtf import CSRFProtect # flask_wtf 已经提供CSRF的防御手段CSRFProtect(app) # 绑定app 登录页的js $(function () { $('#submit').click(fu 阅读全文
摘要:
防御原理,将csrf_token放到session中,再将session放到cookie中 实现: from flask_wtf import CSRFProtect # flask_wtf 已经提供CSRF的防御手段CSRFProtect(app) # 绑定app CSRFProtect源码 需在 阅读全文
摘要:
准备一个页面或图片,用于用户访问 一:表单方式 视图 from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def index(): return render_template('index.html 阅读全文