flask html 模板继承,Flask框架模板继承实现方法分析
Flask框架模板繼承實現方法分析
本文實例講述了Flask框架模板繼承實現方法。分享給大家供大家參考,具體如下:
在模板中,可能會遇到以下情況:
多個模板具有完全相同的頂部和底部內容
多個模板中具有相同的模板代碼內容,但是內容中部分值不一樣
多個模板中具有完全相同的 html 代碼塊內容
像遇到這種情況,可以使用 JinJa2 模板中的 繼承 來進行實現
模板繼承是為了重用模板中的公共內容。一般Web開發中,繼承主要使用在網站的頂部菜單、底部。這些內容可以定義在父模板中,子模板直接繼承,而不需要重復書寫。
標簽定義的內容
{% block top %} {% endblock %}
相當于在父模板中挖個坑,當子模板繼承父模板時,可以進行填充。
子模板使用 extends 指令聲明這個模板繼承自哪個模板
父模板中定義的塊在子模板中被重新定義,在子模板中調用父模板的內容可以使用super()
父模板代碼:
base.html
{% block top %}
頂部菜單
{% endblock top %}
{% block content %}
{% endblock content %}
{% block bottom %}
底部
{% endblock bottom %}
子模板代碼:
extends指令聲明這個模板繼承自哪
{% extends 'base.html' %}
{% block content %}
需要填充的內容
{% endblock content %}
模板繼承使用時注意點:
不支持多繼承
為了便于閱讀,在子模板中使用extends時,盡量寫在模板的第一行。
不能在一個模板文件中定義多個相同名字的block標簽。
當在頁面中使用多個block標簽時,建議給結束標簽起個名字,當多個block嵌套時,閱讀性更好。
希望本文所述對大家基于flask框架的Python程序設計有所幫助。
時間: 2019-07-30
Jinja2需要Python2.4以上的版本. 安裝 按照Jinja有多種方式,你可以根據需要選擇不同的按照方式. 使用easy_install 或pip: #sudo easy_install Jinja2 #sudo pip install Jinja2 這兩個工具可以自動從網站上下載Jinja,并安裝到python目錄的site-packages目錄中. 從tar包安裝: # 下載Jinja的安裝包 # 解壓縮 # sudo python setup.py install 基本API用法
模板引擎 說明:模板文件就是按照一定的規則書寫的展示效果的HTML文件 模板引擎就是負責按照指定規則進行替換的工具 模板引擎選擇jinja2 一.渲染模板的方法 1.將渲染的模板進行返回 render_template() 2.渲染字符串返回 render_templates_string() 實例 @app.route('/') def index(): #將模板內容響應給用戶 return render_template('index.html') #渲染一內容響應給用戶 return re
本文實例講述了Python Flask框架模板操作.分享給大家供大家參考,具體如下: 模板 在前面的示例中,視圖函數的主要作用是生成請求的響應,這是最簡單的請求.實際上,視圖函數有兩個作用:處理業務邏輯和返回響應內容.在大型應用中,把業務邏輯和表現內容放在一起,會增加代碼的復雜度和維護成本.本節學到的模板,它的作用即是承擔視圖函數的另一個作用,即返回響應內容. 模板其實是一個包含響應文本的文件,其中用占位符(變量)表示動態部分,告訴模板引擎其具體值需要從使用的數據中獲取.使用真實值替換變量,再返
本文實例講述了flask框架視圖函數用法.分享給大家供大家參考,具體如下: flask框架 視圖函數當中 各種實用情況簡單配置 1 建立連接 2 路由參數 3 返回網絡狀態碼 4 自定義錯誤頁面 5 重定向 6 正則url限制 和 url 優化 7 設置和獲取cookie #coding:utf8 # 導入flask from flask import Flask,abort,redirect,make_response,request from werkzeug.routing import
本文實例總結了Flask框架Jinjia模板常用語法.分享給大家供大家參考,具體如下: 1. 變量表示 {{ argv }} 2. 賦值操作 {% set links = [ ('home',url_for('.home')), ('service',url_for('.service')), ('about',url_for('.about')), ] %} 3. if判斷 {% if not loop.first %}|{% endif %} 4. for 循環 {% for label,l
Flask的模板功能是基于Jinja2模板引擎來實現的.模板文件存放在當前目前下的子目錄templates(一定要使用這個名字)下. main.py 代碼如下: from flask import Flask, render_template app = Flask(__name__) @app.route('/hello') @app.route('/hello/') def hello(name=None): return render_template('hello.html
本文實例講述了Flask框架模板渲染操作.分享給大家供大家參考,具體如下: from flask import render_template from flask import Flask from flask import Markup from flask import abort, redirect app = Flask(__name__) @app.route('/') def hello_site(): return "welcome my site!!!!!" #返回給
經過了第一章的內容,已經可以做出一些簡單的頁面,首先用這種方式做一個登錄頁面,首先要創建一個login的路由方法: @app.route("/login",methods=["GET"]) def login(): html="
" \ "| 請輸入用戶名 | Jinja是組成Flask的模板引擎.可能你還不太了解它是干嘛的,但你對下面這些百分號和大括號肯定不陌生: {% block body %}
本文實例講述了Flask框架實現給視圖函數增加裝飾器操作.分享給大家供大家參考,具體如下: 在@app.route的情況下增加裝飾器的寫法: from flask import Flask,request,render_template,redirect,session,url_for,views from flask import render_template app = Flask(__name__) #實例化flask對象 app.debug = True #能夠隨時更改自動重啟,不加的 本文實例講述了flask框架json數據的拿取和返回操作.分享給大家供大家參考,具體如下: json數據結構:以套票票網站的城市數據為例,拿到數據莫慌, 1 先分析數據結構,有幾個大的字段('returnCode'和'retuenValue'字段,只有一個字段作為定義,另一個字段作為保留(無需處理) 2 鍵表----> 拆分'returnValue'確定數據庫表結構,('A'[]城市首字母表 和? 城市具體信息字段{}表) 3 將拿到的數據拆分插入到數據庫中 4 將數據庫的數據以JSON 的形式 本文實例講述了Flask框架路由和視圖用法.分享給大家供大家參考,具體如下: 創建一個簡單flask框架程序 #1.導入Flask類 from flask import Flask #2.創建Flask對象接收一個參數__name__,它會指向程序所在的包 app = Flask(__name__) #3.裝飾器的作用是將路由映射到視圖函數index @app.route('/') def index(): return 'Hello World' #4.Flask應用程序實例的run方法,啟動 本文實例講述了Flask框架學習筆記之消息提示與異常處理操作.分享給大家供大家參考,具體如下: flask通過flash方法來顯示提示消息: from flask import Flask, flash, render_template, request, abort app = Flask(__name__) app.secret_key = '520' @app.route('/') def index(): flash("Hello loli") return render_te 本文實例講述了flask框架渲染Jinja模板與傳入模板變量操作.分享給大家供大家參考,具體如下: 1. 模板簡介 模板是一個web開發中必備的模塊,因為我們在渲染一個網頁的時候,并不只是渲染了一個純文本字符竄,而是渲染一個有富文本標簽的頁面,這個時候我們就需要用到模板了.在flask中,配套的模板是Jinja2,Jinja2的作者也是flask的作者. 2. flask中渲染模板 在flask中,如果我們需要渲染一個模板,那么我們就需要用到render_template這個方法了. 在我們新建 我們最終的視圖技巧利用了一個高級python技術. 假設你發現自己在各個不同視圖里重復了大量代碼,就像 這個例子: def my_view1(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/') # ... return render_to_response('template1.html') def my_view2(request): if not r 本文實例講述了python函數裝飾器之帶參數的函數和帶參數的裝飾器用法.分享給大家供大家參考,具體如下: 1. 函數帶多個參數 # 普通的裝飾器, 打印函數的運行時間 def decrator(func): def wrap(*args, **kwargs): start_time = time.time() res = func(*args, **kwargs) end_time = time.time() print('運行時間為', end_time-start_time) return 本文實例講述了Yii框架數據庫查詢.增加.刪除操作.分享給大家供大家參考,具體如下: Yii 數據庫查詢 模型代碼: <?php namespace app\models; use yii\db\ActiveRecord; class Test extends ActiveRecord{ } 控制器代碼: public function actionTest(){ //方法一 $sql = 'select * from test where id=:id'; $data = Test::find 本文實例講述了Laravel框架模型的創建及模型對數據操作.分享給大家供大家參考,具體如下: 模型創建: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Admin extends Model{ //指定表名 protected $table = 'wd_user'; //指定允許批量復制的字段 protected $fillable = ['username']; //指定id protected $prim 本文實例講述了Python Django中間件,中間件函數,全局異常處理操作.分享給大家供大家參考,具體如下: 應用名/middleware.py(定義中間件類,中間件函數.文件名可以任意): from django.http import HttpResponse # 定義中間件類. (類名可以任意,但類中的方法名是固定的) class TestMiddleware(object): '''中間件類''' def __init__(self): '''服務器重啟之后,接收第一個請求時調用(只會 |
總結
以上是生活随笔為你收集整理的flask html 模板继承,Flask框架模板继承实现方法分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.2背包公钥加密算法
- 下一篇: MindManager2022高效好用办