Flask系列教程(10)——宏和import語句

宏和import語句

宏:

模板中的宏跟python中的函數(shù)類似躬充,可以傳遞參數(shù),但是不能有返回值讨便,可以將一些經常用到的代碼片段放到宏中麻裳,然后把一些不固定的值抽取出來當成一個變量,以下將用一個例子來進行解釋:

{% macro input(name, value='', type='text') %}
<input type="{{ type }}" name="{{ name }}" value="{{ value|e }}">
{% endmacro %}

以上例子可以抽取出了一個input標簽器钟,指定了一些默認參數(shù)津坑。那么我們以后創(chuàng)建input標簽的時候,可以通過他快速的創(chuàng)建:

<p>{{ input('username') }}</p>
<p>{{ input('password', type='password') }}</p>

import語句:

在真實的開發(fā)中傲霸,會將一些常用的宏單獨放在一個文件中疆瑰,在需要使用的時候,再從這個文件中進行導入昙啄。import語句的用法跟python中的import類似穆役,可以直接import...as...,也可以from...import...或者from...import...as...梳凛,假設現(xiàn)在有一個文件耿币,叫做forms.html,里面有兩個宏分別為inputtextarea韧拒,如下:

forms.html:
{% macro input(name, value='', type='text') %}
<input type="{{ type }}" value="{{ value|e }}" name="{{ name }}">
{% endmacro %}

{% macro textarea(name, value='', rows=10, cols=40) %}
<textarea name="{{ name }}" rows="{{ rows }}" cols="{{ cols
}}">{{ value|e }}</textarea>
{% endmacro %}

導入宏的例子:

  1. import...as...形式:

    {% import 'forms.html' as forms %}
    <dl>
    <dt>Username</dt>
    <dd>{{ forms.input('username') }}</dd>
    <dt>Password</dt>
    <dd>{{ forms.input('password', type='password') }}</dd>
    </dl>
    <p>{{ forms.textarea('comment') }}</p>
    
  2. from...import...as.../from...import...形式:

    {% from 'forms.html' import input as input_field, textarea %}
    <dl>
    <dt>Username</dt>
    <dd>{{ input_field('username') }}</dd>
    <dt>Password</dt>
    <dd>{{ input_field('password', type='password') }}</dd>
    </dl>
    <p>{{ textarea('comment') }}</p>
    

另外需要注意的是淹接,導入模板并不會把當前上下文中的變量添加到被導入的模板中,如果你想要導入一個需要訪問當前上下文變量的宏叛溢,有兩種可能的方法:

  • 顯式地傳入請求或請求對象的屬性作為宏的參數(shù)塑悼。
  • 與上下文一起(with context)導入宏。

與上下文中一起(with context)導入的方式如下:

{% from '_helpers.html' import my_macro with context %}

如果想深入學習Flask楷掉,可以觀看這套免費Flask教學視頻:Flask入門到項目實戰(zhàn)

</article>

版權聲明: https://blog.csdn.net/huangyong1314/article/details/74652664

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末厢蒜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斑鸦,老刑警劉巖愕贡,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巷屿,居然都是意外死亡颂鸿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門攒庵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人败晴,你說我怎么就攤上這事浓冒。” “怎么了尖坤?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵稳懒,是天一觀的道長。 經常有香客問我慢味,道長场梆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任纯路,我火速辦了婚禮或油,結果婚禮上,老公的妹妹穿的比我還像新娘驰唬。我一直安慰自己顶岸,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布叫编。 她就那樣靜靜地躺著辖佣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搓逾。 梳的紋絲不亂的頭發(fā)上卷谈,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音霞篡,去河邊找鬼世蔗。 笑死,一個胖子當著我的面吹牛朗兵,可吹牛的內容都是我干的凸郑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼矛市,長吁一口氣:“原來是場噩夢啊……” “哼芙沥!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤而昨,失蹤者是張志新(化名)和其女友劉穎救氯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歌憨,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡着憨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了务嫡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甲抖。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖心铃,靈堂內的尸體忽然破棺而出准谚,到底是詐尸還是另有隱情,我是刑警寧澤去扣,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布柱衔,位于F島的核電站,受9級特大地震影響愉棱,放射性物質發(fā)生泄漏唆铐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一奔滑、第九天 我趴在偏房一處隱蔽的房頂上張望艾岂。 院中可真熱鬧,春花似錦朋其、人聲如沸澳盐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叼耙。三九已至,卻和暖如春粒没,著一層夾襖步出監(jiān)牢的瞬間筛婉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工癞松, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爽撒,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓响蓉,卻偏偏與公主長得像硕勿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枫甲,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容