flask設(shè)置cookie
1_cookie[掌握]
- 解釋: 用來保持服務(wù)器和瀏覽器交互的狀態(tài)的, 由服務(wù)器設(shè)置,存儲在瀏覽器
- 作用: 用來做廣告推送
- cookie的設(shè)置和獲取
- 設(shè)置cookie: response.set_cookie(key,value,max_age)
- max_age: 表示cookie在瀏覽器的存儲時(shí)間,單位是秒
- 獲取cookie: request.cookies.get(“key”)
- 設(shè)置cookie: response.set_cookie(key,value,max_age)
2_session[理解]
- 解釋: 服務(wù)器和用戶來做狀態(tài)保持的,里面存儲的是敏感信息(比如身份證,登陸信息),由服務(wù)器設(shè)置,并存儲在服務(wù)器
- 作用: 用來做用戶的登陸狀態(tài)保持
- session的設(shè)置和獲取
- 設(shè)置session: sessioin[key] = value
- 獲取session: value = session.get(key)
- 注意點(diǎn):
- 1.session的存儲依賴于cookie
- 2.存儲在cookie中的sessionID需要加密,需要秘鑰(SECRET_KEY)
3_上下文[了解]
- 解釋: 就是一個(gè)容器
- 請求上下文
- request: 封裝的是請求相關(guān)的數(shù)據(jù)
- session: 封裝的是和用戶相關(guān)的敏感信息
- 應(yīng)用上下文(在項(xiàng)目中具體應(yīng)用)
- current_app: 是app的一個(gè)代理對象,可以通過他獲取app身上設(shè)置的各種屬性,主要用在模塊化開發(fā)中
- g: 一個(gè)局部的全局變量,主要用在裝飾器中
4_Flask_script[掌握]
- 解釋: 屬于flaks的擴(kuò)展
- 作用: 用來動態(tài)運(yùn)行程序,配合flask_migrate做數(shù)據(jù)庫遷移
- 使用格式:
- 1.安裝
- pip install flask_script
- 2.導(dǎo)入Manager類
- 3.創(chuàng)建對象manager,管理app
- 4.使用manager啟動程序
- 啟動命令: python xxx.py runserver -h(host是IP地址) -p(端口號) -d(調(diào)試模式)
- 1.安裝
5_render_template[掌握]
- 解釋: 屬于jinja2的模板函數(shù)
- 好處:
- 1.以后的視圖函數(shù),只負(fù)責(zé)業(yè)務(wù)邏輯的處理,比如: 數(shù)據(jù)庫的增刪改查
- 2.以后數(shù)據(jù)的展示,全部都有jinja2的模板負(fù)責(zé)
- 使用格式:
- response = render_template(‘模板文件’)
6_模板語法,獲取變量[理解]
- 解釋: 在模板中獲取視圖函數(shù)的變量
- 格式:
- {{ 變量 }}
7_模板語法,分支循環(huán)判斷[掌握]
- 模板語法的種類
- 分支格式:
{% if 條件 %} 語句1 {% else%} 語句2 {% endif %}
- 循環(huán)語句格式:
{% for 變量 in 容器 %} {% endfor %}
- 注釋:
{# 這里是注釋的內(nèi)容 #}
8_系統(tǒng)字符串過濾器[理解]
- 解釋: 過濾器,用來過濾想要的數(shù)據(jù)
- 格式: {{ 字符串 | 字符串過濾器 }}
- 常見的字符串過濾器有:
- title: 將每個(gè)單詞的首字母都大寫
- lower: 將每個(gè)單詞都小寫
- upper: 將每個(gè)單詞都大寫
- reverse: 反轉(zhuǎn)
- …
9_系統(tǒng)列表過濾器[理解]
- 解釋: 過濾器,用來過濾想要的數(shù)據(jù)
- 格式: {{ 列表 | 列表過濾器 }}
- 常見的列表過濾器有:
- first: 獲取列表第一個(gè)元素
- last: 最后一個(gè)元素
- sum: 列表和
- length: 列表長度
- …
10_自定義過濾器[掌握]
- 解釋: 當(dāng)系統(tǒng)提供的過濾器滿足不了需求的時(shí)候,需要自定義
- 自定義過濾器有兩種格式:
- 1.先定義好函數(shù),再將函數(shù)添加到系統(tǒng)默認(rèn)的過濾器列表中
- def 函數(shù)名: pass
- app.add_template_filter(函數(shù)名,‘過濾器名字’)
- 2.定義函數(shù)的時(shí)候,直接使用系統(tǒng)過濾器進(jìn)行裝飾
- 1.先定義好函數(shù),再將函數(shù)添加到系統(tǒng)默認(rèn)的過濾器列表中
@app.template_filter('過濾器名字') def 函數(shù)名(): pass
- 案例:
- 1.獲取列表偶數(shù)和
- 2.反轉(zhuǎn)列表
11_代碼復(fù)用之宏[了解]
- 解釋: 相當(dāng)于python中的函數(shù),定義好一段功能,在需要的時(shí)候進(jìn)行調(diào)用即可
- 定義格式:
{% macro 宏名(參數(shù)) %} {% endmacro %}
- 使用格式:
// 使用當(dāng)前文件定義好的宏 {{ 宏名(參數(shù)) }} //使用其他文件定義好的宏 {% import '文件' as 別名%} {{ 別名.宏名(參數(shù)) }}
12_代碼復(fù)用之繼承[掌握]
- 解釋: 一個(gè)子模板繼承自父模板
- 作用: 共性抽取,代碼復(fù)用
- 父模板
- 1.所有子類都具有的相同的內(nèi)容的, 在父模板中直接寫死
- 2.每個(gè)子類的模板中不一樣的內(nèi)容,使用block模板定義好
- 子模板
- 1.根據(jù)子類自己的需求,去重寫父類中的block對應(yīng)的內(nèi)容
- 2.如果重寫之后,還想保留父類的內(nèi)容,那么使用{{super()}}
- 3.繼承格式: {% extends ‘父文件名’%}, 寫在頁面的頂部
- 注意點(diǎn):
- 定義block的格式
{% block 名稱 %} {% endblock %}
13_代碼復(fù)用之包含[了解]
- 解釋: 在一個(gè)文件中完全擁有另外一個(gè)文件,不夠靈活,沒法擴(kuò)展
- 格式:
方式一: {% include '文件' %} 方式二: {% include '文件' ignore missing %}
注意點(diǎn): ignore missing 如果包含的文件不存在,也不會報(bào)錯(cuò)
15_模板特有變量[了解]
- 解釋: 不需要通過python程序傳遞就可以直接使用的變量
- 常見的特有變量如下:
- config: 就是flask中的app.config, 表示應(yīng)用程序中的所有配置信息
- request: 表示請求上下文對象,封裝的是請求相關(guān)的數(shù)據(jù)
- g: 局部的全局變量(了解)
- url_for(): 反解析,通過函數(shù)的名字,解析到視圖函數(shù)的路徑
- get_flashed_messsages(): 用來消耗flash方法中存儲的消息.
- 場景: 登陸出錯(cuò),可以顯示
- 注意點(diǎn):
- 1.使用flash存儲消息的時(shí)候需要設(shè)置SECRET_KEY
- 2.因?yàn)閒lash內(nèi)部的消息存儲,依賴于了session
16_csrf攻擊流程[了解]
- 解釋: 跨站點(diǎn)請求偽造
- 掌握: 需要理解講義中的攻擊流程圖
- 代碼演示: webA, webB
17_csrf攻擊手動解決[了解]
- 在cookie增加一個(gè)csrf_token
- 在表單中增加一個(gè)csrf_token
- 校驗(yàn): 取出cookie和表單中的csrf_token比較如果二者一致那么是正常請求
- 具體過程,看keynote圖解
18_CSRFProtect解決csrf[理解]
- 使用流程:
- 1.安裝擴(kuò)展包
- pip install flask-wtf
- 2.導(dǎo)入包
- from flask_wtf.csrf import CSRFProtect
- 3.創(chuàng)建CSRFProtect對象,保護(hù)app對象
- 4.設(shè)置SECRET_KEY,便于csrf_token加密
- 5.需要在表單中設(shè)置csrf_token隱藏字段即可
- 例子: 注冊案例
- 注意點(diǎn):
- 1.CSRFProtect一旦保護(hù)了app之后, 會對’POST’, ‘PUT’, ‘PATCH’, 'DELETE’做校驗(yàn).
- 1.安裝擴(kuò)展包
19_ORM介紹[理解]
20_ORM使用流程[掌握]
到此這篇關(guān)于flask設(shè)置cookie的文章就介紹到這了,更多相關(guān)flask設(shè)置cookie內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch 計(jì)算誤判率,計(jì)算準(zhǔn)確率,計(jì)算召回率的例子
今天小編就為大家分享一篇Pytorch 計(jì)算誤判率,計(jì)算準(zhǔn)確率,計(jì)算召回率的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python中不同進(jìn)制間的轉(zhuǎn)換實(shí)現(xiàn)
在計(jì)算機(jī)科學(xué)中,需要進(jìn)行不同進(jìn)制之間的轉(zhuǎn)換,本文主要介紹了Python中不同進(jìn)制間的轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10對python實(shí)時(shí)得到鼠標(biāo)位置的示例講解
今天小編就為大家分享一篇對python實(shí)時(shí)得到鼠標(biāo)位置的示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10淺談django url請求與數(shù)據(jù)庫連接池的共享問題
今天小編就為大家分享一篇淺談django url請求與數(shù)據(jù)庫連接池的共享問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作)
今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Django+Bootstrap實(shí)現(xiàn)計(jì)算器的示例代碼
本文主要介紹了Django+Bootstrap實(shí)現(xiàn)計(jì)算器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11