# Flask實作_基礎_05_render_template ###### tags: `python` `flask` 在[Python Flask實作_基礎_01_建立第一個app](https://hackmd.io/s/SyP4YEnef)中利用`return string`成功的將內容渲染在網頁上,但是實作上不可能將整個HTML硬刻在上面,這次要討論如何利用`render_template`來做樣板的渲染。 ## 作業說明 `render_template`是flask的內建函數,字面上的意思大概是渲染模板,因此它需要一個『模板』來提供渲染的格式。 ```python= from flask import render_template ``` flask預設模板語法是[jinja2](http://jinja.pocoo.org/docs/2.10/),這並不代表它只支援『jinja2』<a href='#note_1'><sub>(註1)</sub></a>,直觀來看,當`return render_template('html文件')`的時候,flask會先到專案資料夾『templates』去尋找相對應的html文件,因此,你需要先做的就是在專案底下建置一個資料夾,並且命名為『templates』<a href='#note_2'><sub>(註2)</sub></a>,如下圖:  在templates資料夾內新增一個html文件並命名為`abc.html`,內容如下: * file name: abc.html ```htmlmixed= <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello Page</title> </head> <body> Flask APP </body> </html> ``` 接著修正python文件內容 * file name: hello_flask.py ```python= from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/') def index(): return render_template('abc.html') if __name__ == '__main__': app.debug = True app.run() ``` 執行專案,開啟瀏灠器連結至`http://127.0.0.1:5000/`,我們已經很優雅的將`abc.html`的內容成功渲染。  ### 註解說明 <span id='note_1'>註1</span>:flask除了支援jinja2,也支援Mako,但建議使用jinja2 <span id='note_2'>註2</span>:可以利用參數配置來調整,但預設情況下我們不會去異動。 ## 總結 這一節我們瞭解到flask提供了一個方便的function可以讓我們先建置好模板之後再來渲染,這讓我們開發過程中python的事python處理,html的事html處理,接續的我們要理解flask跟jinja2之間的配合如何處理。 ## 參考 [jinja2.7_簡中說明](http://docs.jinkan.org/docs/jinja2/) [jinja2.10_官方文件](http://jinja.pocoo.org/docs/2.10/) **上一話:**[Flask實作_基礎_04_什麼是app.debug?](https://hackmd.io/s/H10_LR2gz) **下一話:**[Flask實作_基礎_06_render_template + 參數](https://hackmd.io/s/SJpXnBTez)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.