flask设置cookie

作者:qq_42307546 时间:2022-03-19 21:13:01 

1_cookie[掌握]

  • 解释: 用来保持服务器和浏览器交互的状态的, 由服务器设置,存储在浏览器

  • 作用: 用来做广告推送

  • cookie的设置和获取

    • max_age: 表示cookie在浏览器的存储时间,单位是秒

    • 设置cookie: response.set_cookie(key,value,max_age)

    • 获取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做数据库迁移

    • 使用格式:

      • 启动命令: python xxx.py runserver -h(host是IP地址) -p(端口号) -d(调试模式)

      • pip install flask_script

      • 1.安装

      • 2.导入Manager类

      • 3.创建对象manager,管理app

      • 4.使用manager启动程序

      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_自定义过滤器[掌握]

      • 解释: 当系统提供的过滤器满足不了需求的时候,需要自定义

      • 自定义过滤器有两种格式:

        • def 函数名: pass

        • app.add_template_filter(函数名,‘过滤器名字’)

        • 1.先定义好函数,再将函数添加到系统默认的过滤器列表中

        • 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程序传递就可以直接使用的变量

      • 常见的特有变量如下:

        • 场景: 登陆出错,可以显示

        • 注意点:

        • 1.使用flash存储消息的时候需要设置SECRET_KEY

        • 2.因为flash内部的消息存储,依赖于了session

        • config: 就是flask中的app.config, 表示应用程序中的所有配置信息

        • request: 表示请求上下文对象,封装的是请求相关的数据

        • g: 局部的全局变量(了解)

        • url_for(): 反解析,通过函数的名字,解析到视图函数的路径

        • get_flashed_messsages(): 用来消耗flash方法中存储的消息.

      16_csrf攻击流程[了解]

      • 解释: 跨站点请求伪造

      • 掌握: 需要理解讲义中的攻击流程图

      • 代码演示: webA, webB

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

      • 在cookie增加一个csrf_token

      • 在表单中增加一个csrf_token

      • 校验: 取出cookie和表单中的csrf_token比较如果二者一致那么是正常请求

      • 具体过程,看keynote图解

      18_CSRFProtect解决csrf[理解]

      • 使用流程:

        • from flask_wtf.csrf import CSRFProtect

        • pip install flask-wtf

        • 1.安装扩展包

        • 2.导入包

        • 3.创建CSRFProtect对象,保护app对象

        • 4.设置SECRET_KEY,便于csrf_token加密

        • 5.需要在表单中设置csrf_token隐藏字段即可

        • 例子: 注册案例

        • 注意点:

        • 1.CSRFProtect一旦保护了app之后, 会对’POST’, ‘PUT’, ‘PATCH’, 'DELETE’做校验.

        19_ORM介绍[理解]

        20_ORM使用流程[掌握]

        来源:https://blog.csdn.net/qq_42307546/article/details/129917632

        标签:Python,flask,cookie
        0
        投稿

        猜你喜欢

      • Django框架实现分页显示内容的方法详解

        2023-05-31 17:06:38
      • oracle10g 数据备份与导入

        2009-06-10 18:21:00
      • 如何正确的解决 MySQL中忽略用户的现象

        2008-11-27 16:00:00
      • 使用HTML和MSXML6.0 创建一个超轻量级XPATH测试程序

        2009-04-24 12:38:00
      • DW实现鼠标滑过切换图片

        2008-02-03 18:49:00
      • Python基于tkinter模块实现的改名小工具示例

        2023-08-31 10:40:01
      • tensorflow 重置/清除计算图的实现

        2023-07-23 00:41:58
      • ORACLE客户端连接服务器的注意事项

        2007-08-17 09:57:00
      • Python爬取商家联系电话以及各种数据的方法

        2023-07-24 18:39:38
      • IE10增强对HTML5和CSS3的支持

        2011-09-16 20:16:28
      • 使用python-Jenkins批量创建及修改jobs操作

        2023-07-01 01:53:11
      • python matplotlib自定义colorbar颜色条及内置色条详解

        2023-04-03 16:50:34
      • 极简网页设计视觉呈现技巧

        2010-04-20 14:55:00
      • SQL Server 2005 Express混合模式登录设置

        2009-02-23 13:55:00
      • pytorch 数据集图片显示方法

        2022-01-14 08:57:36
      • 怎样解决MySQL 5.0.16的乱码问题

        2008-10-13 12:47:00
      • python中multiprosessing模块的Pool类中的apply函数和apply_async函数的区别

        2023-03-21 20:23:37
      • php+mysqli数据库连接的两种方式

        2023-10-08 22:15:16
      • 在ASP与ASP.NET之间共享对话状态(2)

        2008-09-02 12:21:00
      • 解决django migrate报错ORA-02000: missing ALWAYS keyword

        2023-04-15 14:19:54
      • asp之家 网络编程 m.aspxhome.com