Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块
Flask中上下文,分为请求上下文和应用上下文。既状态留存 ,就是把变量存在某一个地方可以调用
请求上下文:实际就是request和session用法理念,既都是可以存储东西。
应用上下文:既变量共享,就是把东西存储在变量里可以打印预览,应用上下文包括
# -*- encoding: utf- -*-
# cooki相关操作依赖于make_respinse库
from flask import Flask, make_response, request # 建立对象
app = Flask(__name__)
# 从配置文件导入配置
app.config.from_pyfile('config.ini') @app.route('/')
def index():
return '这里是首页' # 存cooki方法
@app.route('/setcookie')
def set_cookie():
resp = make_response('存储cookie')
# 使用set_coooki方法存储key--calve形式数据,另一个参数是指定的存活时间
resp.set_cookie("productname", '[卫生纸,花生,男神鹏]', max_age=)
return resp # 调用cooki
@app.route('/getcookie')
def get_cookie():
# 通过request模块的cookies属性的get方法,指定key来调用value
resp = request.cookies.get('productname')
return resp # 删除cookie的方法
@app.route('/delcookie')
def del_cookie():
# 通过make_response对象内置的delete_cookie方法来指定key 来删除value
resp = make_response('删除cookie')
resp.delete_cookie('productname')
return resp if __name__ == "__main__":
app.run(debug=True)
session方法增,查,删。
注:在存储sesson时按字典键值对形式直接使用session对存储的内容赋值。如:session['username'] = '你好'
查询时也一样遵循字典查询方式 如:se = session['username'] 然后 return se
删除时通过session的pop方法来删除指定的key来删除value 既:session.pop('username')
具体代码如下:
# -*- encoding: utf- -*-
# session 是依赖于flask的session模块
# 如果想使用sessio模块,在配置里一定要配置session的key
from flask import Flask,session # 建立对象
app = Flask(__name__)
# 从配置文件加载配置
app.config.from_pyfile('config.ini') @app.route('/')
def index():
return '我是首页.session' # 存储session的方法 @app.route('/set_session')
def set_session():
# 直接使用session对存储的内容赋值
session['username'] = '你好'
return '存储session成功' # 调用session的方法
@app.route('/get_session')
def get_session():
# 通过esssion直接内容调用
se = session['username']
return se # 删除session的方法
@app.route('/del_session')
def del_session():
# 通过session的pop方法来删除指定的key来删除value
session.pop('username')
return '删除成功' if __name__ == "__main__":
app.run()
request属性是Flask框架中请求上下文重要模块之一:我们可以通过requset包含的属性来查询访问者信息在后台打印。
具体代码如下:
# -*- encoding: utf- -*-
from flask import Flask, request app = Flask(__name__)
app.config.from_pyfile('config.ini') @app.route('/', methods=['get', 'post'])
def index():
# 打印请求头信息
print(request.headers) # 打印请求方式
print(request.method) # 打印请求的url地址
print(request.url) # 打印所有cookie信息
print(request.cookies) # 打印网址参数信息
print(request.args.get('id')) # dict是查询某对象里边所有属性
print(request.__dict__) return '你好' if __name__ == "__main__":
app.run(debug=True)
current_app模块和g模块在这里只做简单介绍:既current_app模块用来存储当前应用的具体配置信息,g既global用来存储公共变量 以下代码做了个工具函数,方便查看


注:使用工具类要导包 from 文件名 import 方法名
具体代码为:
# -*- encoding: utf- -*-
from flask import Flask, current_app, g
# 从自定义的工具类文件内部引入check_username方法
from utils import check_uesrname # 创建对象
app = Flask(__name__) # 载入配置文件
app.config.from_pyfile('config.ini') @app.route('/')
def index():
# current_app模块用来存储当前应用的具体配置信息
print('打印名字:%s' % current_app.name)
print('打印详细信息:%s' % current_app.__dict__)
# 打印全局对象g里面自定义的属性username
check_uesrname() return '李云鹏是积云酒蒙子' if __name__ == "__main__":
app.run()
# -*- encoding: utf- -*-
from flask import Flask,g def check_uesrname():
g.username = '李云鹏是积云酒蒙子'
print(g.username)
Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块的更多相关文章
- Flask框架中特有的变量/函数及上下文
模板中特有的变量和函数 你可以在自己的模板中访问一些 Flask 默认内置的函数和对象 config 你可以从模板中直接访问Flask当前的config对象: {{config.SQLALCHEMY_ ...
- 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...
- CI框架中,判断post,ajax,get请求的方法
CI框架当中并没有提供,类似tp框架中IS_POST,IS_AJAX,IS_GET的方法. 所有就得我们自己造轮子了.下面就介绍一下,如何定义这些判断请求的方法.其实很简单的. 首先打开constan ...
- flask框架-中
路由扩展 @app.route和app.add_url_rule参数 # rule,URL 规则 # view_func,视图含数名称 # defaults = None,默认值,当url中无参数,函 ...
- flask框架中使用wtforms
一.什么是wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install WTForms 二.简单使用wtforms组件 (一 ...
- tp框架中的一些疑点知识--cookie和session的配置
不同的浏览器采用不同的方式保存Cookie. IE浏览器会在"C:\Documents and Settings\你的用户名\Cookies"文件夹下以文本文件形式保存,一个文本文 ...
- flask框架中勾子函数的使用
在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图函数避免编 ...
- flask框架中,利用数据库增删查改
# 配置数据库app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:mysql@127.0.0.1:3306/booktest" ...
- 在flask框架中,对wtforms的SelectMultipleField的一个报错处理
先粘贴代码: form.py文件: users = SelectMultipleField( label="请选择用户", validators=[ DataRequired(&q ...
随机推荐
- Wyn BI的机会在哪里:越靠近消费者的行业,比如零售、文娱和金融,信息化投入越大 ZT
近日,全球知名信息技术咨询公司IDC在网易云创大会上发布了<2018中国企业数字化发展报告>(下称报告).报告显示,近几年我国数字经济占GDP比重逐年增加,至2017年已经达到32.9%, ...
- 使用JDBC连接MySQL数据库的一个基本案例
JDBC的概念(摘自百度百科) JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一 ...
- Python 利用Python操作excel表格之openyxl介绍Part1
利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...
- JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程
JNI/NDK Java调用C/C++前言 通过第三篇文章讲解在实际的开发过程中Java层调用C/C++层的处理流程.其实我们在很大的业务里也需要C/C+ +层去调用Java层,这两层之间的相互调用 ...
- react 的双向数据绑定
学习过angular和vue的人都知道,它俩在实现双向数据绑定都是有一个专门的内置指令ngModel和v-model 但是在react中没有这些. 所以我们在react中想要实现双向数据绑定要调用一个 ...
- Java 内存模型和硬件内存架构笔记
前言 可跟<主存存取和磁盘存取原理笔记>串着看 https://blog.csdn.net/suifeng3051/article/details/52611310 杂技 Java 内存模 ...
- Weblogic java生成wlfullclient.jar
进入weblogic的server\lib目录 cd G:\Oracle\Middleware\wlserver_10.3\server\lib 运行 java -jar G:\Oracle\Midd ...
- 简单易懂的程序语言入门小册子(5):基于文本替换的解释器,递归,不动点,fix表达式,letrec表达式
这个系列有个显著的特点,那就是标题越来越长.忽然发现今天是读书节,读书节多读书. ==下面是没有意义的一段话============================================== ...
- 转: OVER() 系列函数介绍
OVER(PARTITION BY)函数介绍 开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返 ...
- 用好lua+unity,让性能飞起来——关于《Unity项目常见Lua解决方案性能比较》的一些补充
<Unity项目常见Lua解决方案性能比较>,这篇文章对比了现在主流几个lua+unity的方案 http://blog.uwa4d.com/archives/lua_perf.html ...