flask设置cookie

 更新时间:2023年04月04日 10:23:44   作者:qq_42307546  
这篇文章主要介绍了flask设置cookie,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,感兴趣的同学可以参考阅读

1_cookie[掌握]

  • 解释: 用来保持服务器和浏览器交互的状态的, 由服务器设置,存储在浏览器
  • 作用: 用来做广告推送
  • cookie的设置和获取
    • 设置cookie: response.set_cookie(key,value,max_age)
      • max_age: 表示cookie在浏览器的存储时间,单位是秒
    • 获取cookie: request.cookies.get(“key”)

2_session[理解]

  • 解释: 服务器和用户来做状态保持的,里面存储的是敏感信息(比如身份证,登陆信息),由服务器设置,并存储在服务器
  • 作用: 用来做用户的登陆状态保持
  • session的设置和获取
    • 设置session: sessioin[key] = value
    • 获取session: value = session.get(key)
  • 注意点:
    • 1.session的存储依赖于cookie
    • 2.存储在cookie中的sessionID需要加密,需要秘钥(SECRET_KEY)

3_上下文[了解]

  • 解释: 就是一个容器
  • 请求上下文
    • request: 封装的是请求相关的数据
    • session: 封装的是和用户相关的敏感信息
  • 应用上下文(在项目中具体应用)
    • current_app: 是app的一个代理对象,可以通过他获取app身上设置的各种属性,主要用在模块化开发中
    • g: 一个局部的全局变量,主要用在装饰器中

4_Flask_script[掌握]

  • 解释: 属于flaks的扩展
  • 作用: 用来动态运行程序,配合flask_migrate做数据库迁移
  • 使用格式:
    • 1.安装
      • pip install flask_script
    • 2.导入Manager类
    • 3.创建对象manager,管理app
    • 4.使用manager启动程序
      • 启动命令: python xxx.py runserver -h(host是IP地址) -p(端口号) -d(调试模式)

5_render_template[掌握]

  • 解释: 属于jinja2的模板函数
  • 好处:
    • 1.以后的视图函数,只负责业务逻辑的处理,比如: 数据库的增删改查
    • 2.以后数据的展示,全部都有jinja2的模板负责
  • 使用格式:
    • response = render_template(‘模板文件’)

6_模板语法,获取变量[理解]

  • 解释: 在模板中获取视图函数的变量
  • 格式:
    • {{ 变量 }}

7_模板语法,分支循环判断[掌握]

  • 模板语法的种类
    • 分支格式:
{% if 条件 %}
	语句1
{% else%}
	语句2
{% endif %}
  • 循环语句格式:
{% for 变量 in 容器 %}

{% endfor %}
  • 注释:
{# 这里是注释的内容 #}

8_系统字符串过滤器[理解]

  • 解释: 过滤器,用来过滤想要的数据
  • 格式: {{ 字符串 | 字符串过滤器 }}
  • 常见的字符串过滤器有:
    • title: 将每个单词的首字母都大写
    • lower: 将每个单词都小写
    • upper: 将每个单词都大写
    • reverse: 反转

9_系统列表过滤器[理解]

  • 解释: 过滤器,用来过滤想要的数据
  • 格式: {{ 列表 | 列表过滤器 }}
  • 常见的列表过滤器有:
    • first: 获取列表第一个元素
    • last: 最后一个元素
    • sum: 列表和
    • length: 列表长度

10_自定义过滤器[掌握]

  • 解释: 当系统提供的过滤器满足不了需求的时候,需要自定义
  • 自定义过滤器有两种格式:
    • 1.先定义好函数,再将函数添加到系统默认的过滤器列表中
      • def 函数名: pass
      • app.add_template_filter(函数名,‘过滤器名字’)
    • 2.定义函数的时候,直接使用系统过滤器进行装饰
@app.template_filter('过滤器名字')
def 函数名():
    pass
  • 案例:
  • 1.获取列表偶数和
  • 2.反转列表

11_代码复用之宏[了解]

  • 解释: 相当于python中的函数,定义好一段功能,在需要的时候进行调用即可
  • 定义格式:
{% macro 宏名(参数) %}

{% endmacro %}
  • 使用格式:
// 使用当前文件定义好的宏
{{ 宏名(参数) }}

//使用其他文件定义好的宏
{% import '文件' as 别名%}
{{ 别名.宏名(参数) }}

12_代码复用之继承[掌握]

  • 解释: 一个子模板继承自父模板
  • 作用: 共性抽取,代码复用
  • 父模板
    • 1.所有子类都具有的相同的内容的, 在父模板中直接写死
    • 2.每个子类的模板中不一样的内容,使用block模板定义好
  • 子模板
    • 1.根据子类自己的需求,去重写父类中的block对应的内容
    • 2.如果重写之后,还想保留父类的内容,那么使用{{super()}}
    • 3.继承格式: {% extends ‘父文件名’%}, 写在页面的顶部
  • 注意点:
    • 定义block的格式
{% block 名称 %}

{% endblock %}

13_代码复用之包含[了解]

  • 解释: 在一个文件中完全拥有另外一个文件,不够灵活,没法扩展
  • 格式:
方式一:
{% include '文件' %}

方式二:
{% include '文件' ignore missing %}

注意点: ignore missing 如果包含的文件不存在,也不会报错

15_模板特有变量[了解]

  • 解释: 不需要通过python程序传递就可以直接使用的变量
  • 常见的特有变量如下:
    • config: 就是flask中的app.config, 表示应用程序中的所有配置信息
    • request: 表示请求上下文对象,封装的是请求相关的数据
    • g: 局部的全局变量(了解)
    • url_for(): 反解析,通过函数的名字,解析到视图函数的路径
    • get_flashed_messsages(): 用来消耗flash方法中存储的消息.
      • 场景: 登陆出错,可以显示
      • 注意点:
      • 1.使用flash存储消息的时候需要设置SECRET_KEY
      • 2.因为flash内部的消息存储,依赖于了session

16_csrf攻击流程[了解]

  • 解释: 跨站点请求伪造
  • 掌握: 需要理解讲义中的攻击流程图
  • 代码演示: webA, webB

17_csrf攻击手动解决[了解]

  • 在cookie增加一个csrf_token
  • 在表单中增加一个csrf_token
  • 校验: 取出cookie和表单中的csrf_token比较如果二者一致那么是正常请求
  • 具体过程,看keynote图解

18_CSRFProtect解决csrf[理解]

  • 使用流程:
    • 1.安装扩展包
      • pip install flask-wtf
    • 2.导入包
      • from flask_wtf.csrf import CSRFProtect
    • 3.创建CSRFProtect对象,保护app对象
    • 4.设置SECRET_KEY,便于csrf_token加密
    • 5.需要在表单中设置csrf_token隐藏字段即可
    • 例子: 注册案例
    • 注意点:
    • 1.CSRFProtect一旦保护了app之后, 会对’POST’, ‘PUT’, ‘PATCH’, 'DELETE’做校验.

19_ORM介绍[理解]

20_ORM使用流程[掌握]

到此这篇关于flask设置cookie的文章就介绍到这了,更多相关flask设置cookie内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解读opencv中cv2.imread()返回值为None问题及解决

    解读opencv中cv2.imread()返回值为None问题及解决

    这篇文章主要介绍了解读opencv中cv2.imread()返回值为None问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • python绘制堆叠条形图介绍

    python绘制堆叠条形图介绍

    大家好,本篇文章主要讲的是python绘制堆叠条形图介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Python函数式编程指南:对生成器全面讲解

    Python函数式编程指南:对生成器全面讲解

    今天小编就为大家分享一篇Python函数式编程指南:对生成器全面讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python定时执行程序问题(schedule)

    Python定时执行程序问题(schedule)

    这篇文章主要介绍了Python定时执行程序问题(schedule),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 对sklearn的使用之数据集的拆分与训练详解(python3.6)

    对sklearn的使用之数据集的拆分与训练详解(python3.6)

    今天小编就为大家分享一篇对sklearn的使用之数据集的拆分与训练详解(python3.6),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python如何通过FastAPI构建复杂的Web API

    python如何通过FastAPI构建复杂的Web API

    FastAPI是一个现代的、快速(高性能)的Web框架,用于构建API,这篇文章主要介绍了python如何通过FastAPI构建复杂的Web API,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • 浅析PyTorch中nn.Module的使用

    浅析PyTorch中nn.Module的使用

    这篇文章主要介绍了浅析PyTorch中nn.Module的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python实战小项目之Mnist手写数字识别

    Python实战小项目之Mnist手写数字识别

    MNIST 数据集已经是一个被”嚼烂”了的数据集, 很多教程都会对它”下手”, 几乎成为一个 “典范”. 不过有些人可能对它还不是很了解, 下面通过一个小实例来带你了解它
    2021-10-10
  • Python爬虫信息输入及页面的切换方法

    Python爬虫信息输入及页面的切换方法

    今天小编就为大家分享一篇Python爬虫信息输入及页面的切换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python 中@lazyprop 装饰器的用法

    Python 中@lazyprop 装饰器的用法

    这篇文章主要介绍了Python 中@lazyprop 装饰器的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05

最新评论