91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的Flask模板是什么

發布時間:2021-11-11 21:02:18 來源:億速云 閱讀:162 作者:柒染 欄目:開發技術

Python中的Flask模板是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

在一般的 Web 程序里,訪問一個地址通常會返回一個包含各類信息的 HTML 頁面。因為我們的程序是動態的,頁面中的某些信息需要根據不同的情況來進行調整,比如對登錄和未登錄用戶顯示不同的信息,所以頁面需要在用戶訪問時根據程序邏輯動態生成。

我們把包含變量和運算邏輯的 HTML 或其他格式的文本叫做模板,執行這些變量替換和邏輯計算工作的過程被稱為渲染(模板渲染引擎——Jinja2)。

按照默認的設置,Flask 會從程序實例所在模塊同級目錄的 templates 文件夾中尋找模板。

Python中的Flask模板是什么

模板基本語法

在模板里,你需要添加特定的定界符將 Jinja2 語句和變量標記出來

下面是三種常用的定界符:

1、{{ … }} 用來標記變量。

2、{% … %} 用來標記語句,比如 if 語句,for 語句等。

3、{# … #} 用來寫注釋。

模板中使用的變量需要在渲染的時候傳遞進去。

編寫主頁模板

我們先在 templates 目錄下創建一個 movie.html 文件,作為主頁模板。主頁需要顯示電影條目列表和個人信息,代碼如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>movie list</title>
</head>
<body>
    {# 使用 length 過濾器獲取 movies 變量的長度 #}
    <p>{{ movies|length }} Titles</p>
    <ul>
        {% for movie in movies %} {# 迭代 movies 變量 #}
        <li>{{ movie.title }} - {{ movie.year }}</li> {# 等同于 movie['title'] #}
        {% endfor %} {# 使用 endfor 標簽結束 for 語句 #}
    </ul>
</body>
</html>

為了方便對變量進行處理,Jinja2 提供了一些過濾器(和Vue.js框架中的過濾器有著異曲同工之妙),語法形式如下:
{{ 變量|過濾器 }}

左側是變量,右側是過濾器名。比如,上面的模板里使用 length 過濾器來獲取movies 的長度,類似 Python 里的 len() 函數。

準備虛擬數據

為了模擬頁面渲染,我們需要先創建一些虛擬數據,用來填充頁面內容,其中template.py中定義虛擬數據。

movies = [{'title': '長津湖', 'year': '2021'},{'title': '送你一朵小紅花', 'year': '2021'}]

渲染主頁模板

使用 render_template() 函數可以把模板渲染出來,必須傳入的參數為模板文件名(相對于 templates 根目錄的文件路徑),這里即 ‘movie.html' 。為了讓模板正確渲染,我們還要把模板內部使用的變量通過關鍵字參數傳入這個函數,如下所示:

from flask import Flask, render_template
 app = Flask(__name__)
 
@app.route('/')
def movie():
    return render_template('movie.html', movies=movies)
 
if __name__ == "__main__":
    app.run()

在傳入 render_template() 函數的關鍵字參數中,左邊的 movies 是模板中使用的變量名稱,右邊的movies 則是該變量指向的實際對象。這里傳入模板的movies 是列表,但能夠在模板里使用的不只這一種 Python數據結構,你也可以傳入字符串、元組、字典、函數等。

render_template() 函數在調用時會識別并執行 “movie.html” 里所有的 Jinja2 語句,返回渲染好的模板內容。在返回的頁面中,變量會被替換為實際的值(包括定界符),語句(及定界符)則會在執行后被移除(注釋也會一并移除)。

看完上述內容,你們掌握Python中的Flask模板是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

虹口区| 永州市| 新和县| 新乡县| 佛冈县| 绥宁县| 三明市| 巩义市| 兰溪市| 屏东县| 茂名市| 高阳县| 湛江市| 抚顺市| 昌乐县| 四子王旗| 宣武区| 蕉岭县| 英吉沙县| 宝应县| 若尔盖县| 甘南县| 确山县| 土默特右旗| 同江市| 太和县| 浮梁县| 泌阳县| 昌邑市| 璧山县| 渝中区| 太保市| 邢台县| 扎赉特旗| 绥化市| 库车县| 菏泽市| 临汾市| 思茅市| 新邵县| 绥德县|