摘要:
保存全局对象的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 阅读全文