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.pswp.cn/news/711113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711113.shtml
英文地址,請注明出處:http://en.pswp.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、修改啟動參數和配置文件 需要注意的是為了…

AI推介-多模態視覺語言模型VLMs論文速覽(arXiv方向):2024.01.01-2024.01.10

論文目錄~ 1.RoboFusion: Towards Robust Multi-Modal 3D obiect Detection via SAM2.Aligned with LLM: a new multi-modal training paradigm for encoding fMRI activity in visual cortex3.3DMIT: 3D Multi-modal Instruction Tuning for Scene Understanding4.Incorporati…

電子科技大學課程《計算機網絡系統》(持續更新)

前言 本校的課程課時有所縮減,因此可能出現與你學習的課程有所減少的情況,因此對其他學校的同學更多的作為參考作用。本文章適合學生的期中期末考試,以及想要考研電子科技大學的同學,電子科技大學同學請先看附言。 第一章 計算…

Unity - SerializeReference特性

作用:在編輯器面板上持久序列化一個接口或者抽象類對象 特點: 1.添加SerializeReference后, 即使字段是私有的, 也無需添加SerializeField屬性, 二者同有將私有字段序列化的能力. 2.SerializeReference屬性允許字段為null, 這點與默認序列化行為不同,…

Angular ts中監聽變量

這邊有個需求,需要監控某個input的變量變化,突然忘記怎么監聽變量了,查了下,記錄 這邊使用angluar/core中的OnChanges接口,然后實現 ngOnChanges方法,只要變量發生了變化,這里面都可以監聽到&am…

蘋果手機如何下載微信視頻號的視頻?親測可用的方法!

以下是如何下載微信視頻號的視頻的辦法,首先是視頻號下載提取器,下載視頻號視頻的! 需配合微信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實戰:Web實時消息推送技術

一、引言 隨著互聯網技術的飛速發展和用戶對實時交互體驗的追求&#xff0c;Web實時消息推送已成為眾多在線平臺的核心功能之一。無論是社交網絡的新消息通知、協同辦公工具的實時更新&#xff0c;還是電商平臺的訂單狀態變更&#xff0c;都需要實時、準確地將信息推送到用戶的…

【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;下面以目標檢測的例子來解釋…