flask第十八篇——模板【2】

請關注公衆號:自動化測試實戰html

上一節咱們介紹了模板的基本使用方法,如今咱們想一個問題,若是把index.html放到template文件夾下面的文件夾該怎麼辦呢?其實很容易,當文件夾結構以下圖所示時:flask

咱們只須要修改render_template的值便可,代碼以下:app

若是你在pycharm裏面修改,pycharm會自動幫你改應用的代碼的。post

 

如今來想另外一個問題,就是既然模板能夠複用,那麼它裏面的內容確定不可能寫死對吧,若是寫成固定值那每一個頁面的內容都成了同樣的了,因此模板就須要寫成變量的形式,經過給變量傳值來修改模板對應的內容。在flask中,變量的寫法是{{ 變量值 }}這種兩個大括號(又叫大鬍鬚)的形式。
如今咱們在主文件給一段字符串,而後想把它應用到.html模板中,咱們該怎門辦呢?根據render_template的源碼知道它還有第二個參數——關鍵字參數**context,因此咱們知道只須要給它傳一個關鍵字參數便可,加上剛纔的大鬍鬚傳遞變量,咱們來看一段代碼:測試

templateDemo.py文件spa

# coding: utf-8

from flask import Flask, render_template app = Flask(__name__)  # type: Flask
app.debug = True

@app.route('/')
def hello_world():    title = u'首頁內容'    return render_template('post/index.html', title=title)

if __name__ == '__main__':    app.run()

index.html文件debug

<!DOCTYPE html>
<html lang="en">
   <head>        <meta charset="UTF-8">        <title>這裏是title</title>
   </head>
   <body>        <h1>{{ title }}</h1>
   
   </body>
</html>

如今來執行代碼,而後去頁面查看:code

咱們看到title的內容已經在頁面上顯示出來了。htm

這是模板引用變量的最簡單的一個例子。utf-8

如今咱們來渲染一個字典(就是傳值爲字典,專業術語叫渲染,記住了):

# coding: utf-8

from flask import Flask, render_template app = Flask(__name__)  # type: Flask
app.debug = True

@app.route('/')
def hello_world():    title = {"name": "Warren",
            "age": 18,
            "gender": "male"}
   
   return render_template('post/index.html', title=title)
   
if __name__ == '__main__':    app.run()

執行代碼後看到頁面直接顯示了字典title的內容:

若是咱們如今只想取字典裏name的值呢?那麼我只須要修改index.html裏面的內容便可:
index.html文件

<!DOCTYPE html>

<html lang="en">
<head>    <meta charset="UTF-8">    <title>這裏是title</title>

</head>
<body>    <h1>{{ title.name }}</h1>

</body>
</html>

能夠看到,取值的方式就是title.name便可。

 

請關注公衆號:自動化測試實戰

相關文章
相關標籤/搜索