Flask中上下文,分为请求上下文和应用上下文。既状态留存 ,就是把变量存在某一个地方可以调用

请求上下文:实际就是request和session用法理念,既都是可以存储东西。

应用上下文:既变量共享,就是把东西存储在变量里可以打印预览,应用上下文包括

current_app模块和g模块
 
 
cookie方法增,查,删。
注:存储cookie时使用set_coooki方法存储key--calve形式数据,另一个参数max_age
  是指定的存活时间。
  

  调用cookie的方法是通过request模块的cookies属性的get方法,指定key来调用value
 
  删除cookie通过make_response对象内置的delete_cookie方法来指定key 来删除value
 
具体代码如下:
  1. # -*- encoding: utf- -*-
  2. # cooki相关操作依赖于make_respinse库
  3. from flask import Flask, make_response, request
  4.  
  5. # 建立对象
  6. app = Flask(__name__)
  7. # 从配置文件导入配置
  8. app.config.from_pyfile('config.ini')
  9.  
  10. @app.route('/')
  11. def index():
  12. return '这里是首页'
  13.  
  14. # 存cooki方法
  15. @app.route('/setcookie')
  16. def set_cookie():
  17. resp = make_response('存储cookie')
  18. # 使用set_coooki方法存储key--calve形式数据,另一个参数是指定的存活时间
  19. resp.set_cookie("productname", '[卫生纸,花生,男神鹏]', max_age=)
  20. return resp
  21.  
  22. # 调用cooki
  23. @app.route('/getcookie')
  24. def get_cookie():
  25. # 通过request模块的cookies属性的get方法,指定key来调用value
  26. resp = request.cookies.get('productname')
  27. return resp
  28.  
  29. # 删除cookie的方法
  30. @app.route('/delcookie')
  31. def del_cookie():
  32. # 通过make_response对象内置的delete_cookie方法来指定key 来删除value
  33. resp = make_response('删除cookie')
  34. resp.delete_cookie('productname')
  35. return resp
  36.  
  37. if __name__ == "__main__":
  38. app.run(debug=True)

session方法增,查,删。

注:在存储sesson时按字典键值对形式直接使用session对存储的内容赋值。如:session['username'] = '你好'

  查询时也一样遵循字典查询方式 如:se = session['username']   然后 return se

  删除时通过session的pop方法来删除指定的key来删除value 既:session.pop('username')

具体代码如下:

  1. # -*- encoding: utf- -*-
  2. # session 是依赖于flask的session模块
  3. # 如果想使用sessio模块,在配置里一定要配置session的key
  4. from flask import Flask,session
  5.  
  6. # 建立对象
  7. app = Flask(__name__)
  8. # 从配置文件加载配置
  9. app.config.from_pyfile('config.ini')
  10.  
  11. @app.route('/')
  12. def index():
  13. return '我是首页.session'
  14.  
  15. # 存储session的方法
  16.  
  17. @app.route('/set_session')
  18. def set_session():
  19. # 直接使用session对存储的内容赋值
  20. session['username'] = '你好'
  21. return '存储session成功'
  22.  
  23. # 调用session的方法
  24. @app.route('/get_session')
  25. def get_session():
  26. # 通过esssion直接内容调用
  27. se = session['username']
  28. return se
  29.  
  30. # 删除session的方法
  31. @app.route('/del_session')
  32. def del_session():
  33. # 通过session的pop方法来删除指定的key来删除value
  34. session.pop('username')
  35. return '删除成功'
  36.  
  37. if __name__ == "__main__":
  38. app.run()

request属性是Flask框架中请求上下文重要模块之一:我们可以通过requset包含的属性来查询访问者信息在后台打印。

具体代码如下:

  1. # -*- encoding: utf- -*-
  2. from flask import Flask, request
  3.  
  4. app = Flask(__name__)
  5. app.config.from_pyfile('config.ini')
  6.  
  7. @app.route('/', methods=['get', 'post'])
  8. def index():
  9. # 打印请求头信息
  10. print(request.headers)
  11.  
  12. # 打印请求方式
  13. print(request.method)
  14.  
  15. # 打印请求的url地址
  16. print(request.url)
  17.  
  18. # 打印所有cookie信息
  19. print(request.cookies)
  20.  
  21. # 打印网址参数信息
  22. print(request.args.get('id'))
  23.  
  24. # dict是查询某对象里边所有属性
  25. print(request.__dict__)
  26.  
  27. return '你好'
  28.  
  29. if __name__ == "__main__":
  30. app.run(debug=True)

current_app模块和g模块在这里只做简单介绍:既current_app模块用来存储当前应用的具体配置信息,g既global用来存储公共变量 以下代码做了个工具函数,方便查看

注:使用工具类要导包  from 文件名 import 方法名

具体代码为:

  1. # -*- encoding: utf- -*-
  2. from flask import Flask, current_app, g
  3. # 从自定义的工具类文件内部引入check_username方法
  4. from utils import check_uesrname
  5.  
  6. # 创建对象
  7. app = Flask(__name__)
  8.  
  9. # 载入配置文件
  10. app.config.from_pyfile('config.ini')
  11.  
  12. @app.route('/')
  13. def index():
  14. # current_app模块用来存储当前应用的具体配置信息
  15. print('打印名字:%s' % current_app.name)
  16. print('打印详细信息:%s' % current_app.__dict__)
  17. # 打印全局对象g里面自定义的属性username
  18. check_uesrname()
  19.  
  20. return '李云鹏是积云酒蒙子'
  21.  
  22. if __name__ == "__main__":
  23. app.run()
  1. # -*- encoding: utf- -*-
  2. from flask import Flask,g
  3.  
  4. def check_uesrname():
  5. g.username = '李云鹏是积云酒蒙子'
  6. print(g.username)

Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块的更多相关文章

  1. Flask框架中特有的变量/函数及上下文

    模板中特有的变量和函数 你可以在自己的模板中访问一些 Flask 默认内置的函数和对象 config 你可以从模板中直接访问Flask当前的config对象: {{config.SQLALCHEMY_ ...

  2. 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法

    单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...

  3. CI框架中,判断post,ajax,get请求的方法

    CI框架当中并没有提供,类似tp框架中IS_POST,IS_AJAX,IS_GET的方法. 所有就得我们自己造轮子了.下面就介绍一下,如何定义这些判断请求的方法.其实很简单的. 首先打开constan ...

  4. flask框架-中

    路由扩展 @app.route和app.add_url_rule参数 # rule,URL 规则 # view_func,视图含数名称 # defaults = None,默认值,当url中无参数,函 ...

  5. flask框架中使用wtforms

    一.什么是wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install WTForms 二.简单使用wtforms组件 (一 ...

  6. tp框架中的一些疑点知识--cookie和session的配置

    不同的浏览器采用不同的方式保存Cookie. IE浏览器会在"C:\Documents and Settings\你的用户名\Cookies"文件夹下以文本文件形式保存,一个文本文 ...

  7. flask框架中勾子函数的使用

    在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图函数避免编 ...

  8. flask框架中,利用数据库增删查改

    # 配置数据库app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:mysql@127.0.0.1:3306/booktest" ...

  9. 在flask框架中,对wtforms的SelectMultipleField的一个报错处理

    先粘贴代码: form.py文件: users = SelectMultipleField( label="请选择用户", validators=[ DataRequired(&q ...

随机推荐

  1. 09-HTML-form标签

    <html> <head>  <title>form标签学习</title>  <meta charset="utf-8"/& ...

  2. 洛谷P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

  3. 中文代码示例之Electron桌面应用开发初体验

    参考: 打造你的第一个 Electron 应用 首先运行下面在目录下创建package.json: $ npm init 去掉了一些无关项后内容如下: { "name": &quo ...

  4. Vue 组件之间传值

    一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据. 子组件部分: 这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量. 如果需要从 ...

  5. 深入理解Java虚拟机04--类结构文件

    一.程序存储格式 统一的程序存储格式:不同平台的虚拟机于所有平台都统一使用程序存储格式——字节码(ByteCode); Java 虚拟机不关心 Class 文件的来源,而只和“Class文件" ...

  6. Java-- String源码分析

    版权声明:本文为博主原创文章,未经博主允许不得转载 本篇博文基于java8,主要探讨java中的String源码. 首先,将一个类分为几个部分,分别是类定义(继承,实现接口等),全局变量,方法,内部类 ...

  7. ORACLE实际执行计划与预估执行计划不一致性能优化案例

      在一台ORACLE服务器上做巡检时,使用下面SQL找出DISK_READ最高的TOP SQL分析时,分析过程中,有一条SQL语句的一些反常现象,让人觉得很奇怪: SELECT SQL_ID,    ...

  8. hadoop java上传文件

    import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; impo ...

  9. SqlServer2017下载地址

    https://www.microsoft.com/zh-CN/download/details.aspx?id=55994

  10. Lua不显示小数点0的部分

    我的环境:Unity3D 5.3.7p4 XLua版本v2.1.6 基于Lua5.3 (https://github.com/Tencent/xLua) 在Lua中数字不区分整型或浮点型,所有都是nu ...