小工具知识网

当前位置: 首页 > 行业知识 > FLask会话技术和Flask模板语言

行业知识

FLask会话技术和Flask模板语言

2026-10-29 13:21:43 来源:互联网转载

二、FLask会话技术和Flask模板语言

1.会话技术

cookie

客���端的会话技术:让服务器认识浏览器,常用于登录

cookie本身由浏览器保存,通过Response将cookie写到浏览器上,下一次访问,浏览器会根据不同的规则携带cookie过来

特点:

  • 客户端会话技术,浏览器的会话技术

  • 数据全都是存储在客户端中

  • 存储使用的键值对结构进行的存储

  • 特性

    • 支持过期时间
    • 默认会自动携带本网站的所有cookie
    • 根据域名进行cookie存储
    • 不能跨域名
    • 不能跨浏览器
    • Cookie是通过服务器创建的Response来创建的

      • 设置cookie:

        response.set_cookie(key , value[ ,max_age=None,exprise=None])

        • max_age:整数,指定cookie过期时间
        • expries:整数,指定过期时间,可以指定一个具体日期时间
        • max_age和expries两个选一个指定,max_age优先级高
        • 获取cookie:

          request.cookies.get(key)

        • 删除cookiel

          response.delete_cookie(key)

          session

          服务器端会话技术,赖于cookie

          特点:

          • 服务端的会话技术
          • 所有数据存储在服务器中
          • 默认存储在内存中
          • 存储结构也是key-value形势,键值对
          • session是离不开cookie的

            Flask中的session是全局对象(之前的request也是Flask的一个全局对象)

            常用操作:

            • 设置session

              session['key'] = 'value'

            • 获取session

              session.get(key ,default=None)根据键获取会话的值

            • 删除session

              • session.pop(key)删除某一值

              • session.clear()清除所有

                Cookie和Session区别

                • cookie:
                  • 1.在浏览器存储
                  • 2.安全性较低
                  • 3.可以减轻服务器压力
                  • session:
                    • 1.在服务器端存储
                    • 2.安全性高
                    • 3.对服务器要求较高
                    • 4.依赖cookie

                      2. 模板Template

                      • 模板是呈现给用户的界面

                        在MVT中充当T的角色,实现了MT的解耦,开发中VT有这N:N的关系,一个V可以调用任意T,一个T可以被任意V调用

                      • 模板处理分为两个过程

                        1.加载HTML

                        2.模板渲染(模板语言)

                      • 模板代码包含两个部分

                        ​ 1.静态HTML

                        ​ 2.动态插入的代码段(模板语法)

                        Jinja2

                        Flask中使用Jinja2模板引擎,Jinja2由Flask作者开发

                        • 一个现代化设计和友好的Python模板语言
                        • 模仿Django的模板引擎

                          优点

                          • 速度快,被广泛使用
                          • HTML设计和后端Python分离减少Python复杂度
                          • 非常灵活,快速和安全
                          • 提供了控制,继承等高级功能

                            模板语法

                            • 模板语法主要分为两种
                              • 变量
                              • 标签
                              • 模板中的变量 {{ var }}
                                • 视图传递给模板的数据
                                • 前面定义出来的数据
                                • 变量不存在,默认忽略
                                • 模板中的标签{{% tag %}}
                                  • 控制逻辑
                                  • 使用外部表达式创建变量
                                  • 宏定义

                                    结构标签

                                    # block块操作# 父模板挖坑,子模板填坑{% block xxx %}{% endblock %}extends继承{% extends 'xxx' %} # 继承后保留块中的内容{{ super() }}# include# 包含,将其他htm1包含进来{% include 'xxx' %}# marco 【了解】# 宏定义,可以在模板中定义函数。在其它地方调用{% macro hello(name) %}{{ name }}{% endmacro %}# 宏定义可导入{% from "xxx" import XXX %}

                                    循环

                                    # for循环{% for item in cols %}AA{% else %}BB{% endfor %}# 可以使用和Python一样的for...else# 也可以获取循环信息loop# loop.first: 判断是否是第一个元素# loop.last: 判断是否是最后一个元素loop# index: 1开始的下标# loop.indexe: 0开始的下标# loop.revindex: 反向下标,不包括0# loop.revindexe: 反向下标,包括0

                                    过滤器(扩展)

                                    语法:{{ 变量 | 过滤器 | 过滤器... }}

                                    capitalizeloweruppertitletrimreversestriptags 渲染之前,将值中标签去掉safedefault(1)lastfirstlengthsumsort...

上一篇:怎么判断服务器损坏?

下一篇:es文件浏览器怎么创建服务器?