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
猜你喜欢
- FSO,正如UFO般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100MB空间只要60RMB/年,支持数据库,
- PHP有一组进程控制函数(编译时需要–enable-pcntl与posix扩展),使得php能实现跟c
- 前言学会向程序中添加必要的注释,也是很重要的。注释不仅可以用来解释程序某些部分的作用和功能(用自然语言描述代码的功能),在必要时,还可以将代
- 本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容:一、我们首先从经典的
- 一个asp读取数据库中数据到数组的类,仅供参考!DbPath = "test.mdb"’数据库位置&
- 在做视觉设计时,如何高效地使用图标是一门学问:该使用什么样的图标?图标该放在哪里?大小如何?图标的使用是否帮助用户更好更快的理解内容,亦或是
- 前言:图像处理是常用的技术,python 拥有丰富的第三方扩展库,Pillow 是 Python3 最常用的图像处理库,目前最高版本5.2.
- 上次亚马逊的商品信息都获取到了,自然要看一下评论的部分。用户的评论能直观的反映当前商品值不值得购买,亚马逊的评分信息也能获取到做一个评分的权
- 嗯,开场先胡扯几句不相关地感言。最近的工作让我有了很多实践的机会,同时也让我收获颇丰。在群里聊天的时候也提到过,所有的学习过程,最好是理论-
- 一、常见的异常1、NameError 未定义变量异常print(a)# 输出:NameError: name 'a' is
- 第一种情况:有RAID,还需要做数据库备份吗?回答:需要。有了RAID,万一部份磁盘损坏,可以修复数据库,有的情况下数据库甚至可以继续使用。
- 本文实例讲述了Python图像处理之直线和曲线的拟合与绘制。分享给大家供大家参考,具体如下:在数据处理和绘图中,我们通常会遇到直线或曲线的拟
- 在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。本文重点给大家介绍python中正则表达式 re.findall
- 现在IE7已经推出一段时间并且渗透到用户当中,不用等太久我们就可以在页面上使用更高级的CSS。两个最有用的项目将是 Child子和Adjac
- ASP+javascript实现可显示和隐藏的树型菜单实例:<script language=&qu
- AJAX应用因为它们的表现力的丰富、更加互动和更加迅速的响应得到了赞扬声;这些优点都是通过使用XMLHttpRequest对象来动态的载入数
- 学习JQUERY就应该从最基本的学起,基本的就应该是语法了,在这里,我们有必要先温习一下JAVASCRIPT的一些知识。语法就不用说了,都是
- 在US BlackHat 2018大会上,安全人员证明,攻击者不仅可以利用PHAR包发动RCE攻击,而且,通过调整其二进制内容,他们还可以将
- 在python中,用于数组拼接的主要来自numpy包,当然pandas包也可以完成。而,numpy中可以使用append和concatena
- 基础知识在学习该漏洞之前我们需要学习一下前置知识来更好的理解该漏洞的产生原因以及如何利用。 我们先来学习一下框架的基本信息以及反序列化漏洞的