FLask会话技术和Flask模板语言

二、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

过滤器(扩展)

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

capitalize
lower
upper
title
trim
reverse
striptags 渲染之前,将值中标签去掉
safe
default(1)
last
first
length
sum
sort
...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm656基于JAVA的校园失物招领平台的设计与实现

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1 课题…

(k8s中)docker netty OOM问题记录

1、首先查看docker的内存占用情况: docker top 容器名 -u 查看内存cpu占用率(容器名来自kubectl describe pod xxx或者docker ps) 可以看出内存一直增长,作为IO代理这是不正常的。 2、修改启动参数和配置文件 需要注意的是为了…

电子科技大学课程《计算机网络系统》(持续更新)

前言 本校的课程课时有所缩减,因此可能出现与你学习的课程有所减少的情况,因此对其他学校的同学更多的作为参考作用。本文章适合学生的期中期末考试,以及想要考研电子科技大学的同学,电子科技大学同学请先看附言。 第一章 计算…

苹果手机如何下载微信视频号的视频?亲测可用的方法!

以下是如何下载微信视频号的视频的办法,首先是视频号下载提取器,下载视频号视频的! 需配合微信PC版或者手机进行操作。这里以苹果手机为例 首先,你需要在视频号频道找到你想要下载的视频,然后通过点击选择你需要播放的…

[Android View] 可绘制形状 (Shape Xml)

一切以官方文档为主 官方文档https://developer.android.com/guide/topics/resources/drawable-resource?hlzh-cn#Shape 什么是可绘制形状 可以理解为用xml文件来描述一个简单的Drawable图形&#xff0c;比如说以下这段xml就可以用来描述一个白色的圆形&#xff1a; <?…

Centos中安装Docker及Docker的使用

在centos7系统中安装指定版本的docker,并通过docker使用安装mysql为例,阐述docker的使用。 2.1、Docker卸载及安装yum依赖 【卸载Docker,如果安装的Docker的版本不合适】 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-…

智能汽车软硬件产品CES展示汽车技术新亮点

智能汽车是汽车产业发展的新趋势&#xff0c;是未来汽车发展的必然方向。智能汽车是指搭载了先进的传感器、控制器、执行器等部件&#xff0c;并融合了人工智能、自动驾驶等技术&#xff0c;能够实现部分或完全自动驾驶、智能网联等功能的汽车。 近年来&#xff0c;智能汽车技…

抖店怎么开店注册?新手需要准备什么?这几个步骤很关键!

我是电商珠珠 不少人瞄准了抖店这个短视频电商势头&#xff0c;想要在今年大干一场。关于抖店注册这方面&#xff0c;部分人还不太清楚&#xff0c;今天我就带大家一步步注册&#xff0c;看一遍就会了。 前期准备资料 前期新手的话&#xff0c;需要准备一张个体工营业执照&a…

【Java设计模式】二、单例模式

文章目录 0、单例模式1、饿汉式2、懒汉式3、双重检查4、静态内部类5、枚举6、单例模式的破坏&#xff1a;序列化和反序列化7、单例模式的破坏&#xff1a;反射8、单例模式的实际应用 设计模式即总结出来的一些最佳实现。GoF(四人组) 书中提到23种设计模式&#xff0c;可分为三大…

B站画质补完计划(2):视频超分让像素细腻生动

本期作者 1 前言 为了给用户提供更清晰的画质体验&#xff0c;B站自研的超分辨率算法已经在站内广泛应用&#xff0c;支持了如《赛马娘》、《流浪地球2》、《权力的游戏》、英雄联盟S赛赛事直播等知名番剧、电影电视剧以及重要游戏赛事直播的 4K 视频流生产。 2 超分算法的应用…

论文阅读:2020GhostNet华为轻量化网络

创新&#xff1a;&#xff08;1&#xff09;对卷积进行改进&#xff08;2&#xff09;加残差连接 1、Ghost Module 1、利用1x1卷积获得输入特征的必要特征浓缩。利用1x1卷积对我们输入进来的特征图进行跨通道的特征提取&#xff0c;进行通道的压缩&#xff0c;获得一个特征浓…

“智农”-高标准农田

高标准农田是指通过土地整治、土壤改良、水利设施、农电配套、机械化作业等措施&#xff0c;提升农田质量和生产能力&#xff0c;达到田块平整、集中连片、设施完善、节水高效、宜机作业、土壤肥沃、生态友好、抗灾能力强、与现代农业生产和经营方式相适应的旱涝保收、稳产高产…

C++设计模式之——享元模式详解和代码案例

文章目录 C中实现享元模式通常涉及以下几个关键部分&#xff1a;一个简单的C代码片段示例享元模式的进一步说明C享元模式代码案例——咖啡店订单系统享元模式在现实世界的应用场景 C中实现享元模式通常涉及以下几个关键部分&#xff1a; 享元模式&#xff08;Flyweight Patter…

LCR 153. 二叉树中和为目标值的路径

解题思路&#xff1a; 回溯&#xff1a;先序遍历&#xff0b;路径记录 class Solution {LinkedList<List<Integer>> res new LinkedList<>();LinkedList<Integer> path new LinkedList<>();public List<List<Integer>> pathTarge…

android 如何动态修改swap

前言 当前项目中发现&#xff0c;产品在长时间使用后&#xff0c;会概率死机&#xff0c;通过log分析&#xff0c;可能和swap 大小太小导致的&#xff0c;需要修改增大swap大小后&#xff0c;压测验证。如何查看swap大小 cat /proc/swaps C:\Users\Administrator>adb shel…

元学习(meta-learning)的通俗解释

目录 1、什么是元学习 2、元学习还可以做什么 3、元学习是如何训练的 1、什么是元学习 meta-learning 的一个很经典的英文解释是 learn to learn&#xff0c;即学会学习。元学习是一个很宽泛的概念&#xff0c;可以有很多实现的方式&#xff0c;下面以目标检测的例子来解释…

阿里Replace Anything:一键替换万物,让图像编辑更简单

最近&#xff0c;阿里巴巴智能研究院在AIGC领域可谓动作频频&#xff0c;新品发布不断&#xff0c;在之前的文章已经向大家介绍了关于Animate AnyOne, Outfit Anyone&#xff0c;AnyText, AnyDoor等相关技术&#xff0c;感兴趣的小伙伴可以点击下面链接阅读&#xff5e; AI一键…

Laravel - API 项目适用的图片验证码

1. 安装 gregwar/captcha 图片验证码接口的流程是&#xff1a; 生成图片验证码 生成随机的 key&#xff0c;将验证码文本存入缓存。 返回随机的 key&#xff0c;以及验证码图片 # 不限于 laravel 普通 php 项目也可以使用额 $ composer require gregwar/captcha2. 开发接口 …

小塔RFID技术帮您解决“仓储管理危机”!

商品积压对一个企业带来的影响是久远的&#xff0c;仓储管理流转失衡&#xff1a;库存数据不准确、繁琐人工管理费时费力、商品爆仓及库存短缺等造成“仓储管理危机”&#xff0c;让企业自身陷入困境。 优化仓储管理&#xff0c;小塔RFID仓储管理方案轻松解决。利用RFID&#x…

java数据结构与算法刷题-----LeetCode538. 把二叉搜索树转换为累加树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 解题思路 BST二叉搜索树&#xff0c;中序遍历结果为一个升序序列…