Python編程flask使用頁(yè)面模版的方法
在flask中可以像go和angular那樣使用頁(yè)面模版(template),可以將HTML頁(yè)面顯示進(jìn)行模版化,通過(guò)參數(shù)傳遞與頁(yè)面進(jìn)行數(shù)據(jù)交互。
概要信息
事前準(zhǔn)備:flask
liumiaocn:flask liumiao$ which flask /usr/local/bin/flask liumiaocn:flask liumiao$ flask --version Flask 1.0.2 Python 2.7.10 (default, Jul 15 2017, 17:16:57) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] liumiaocn:flask liumiao$
代碼示例:嵌入式的HTML模版
像Angular一樣,我們可以在flask中寫前端的頁(yè)面,python代碼中混雜著HTML代碼,在這里將前面的HelloWorld示例進(jìn)行簡(jiǎn)單的修改,將顯示的Hello World加上的設(shè)置。
代碼示例
liumiaocn:flask liumiao$ cat flask_1.py #!/usr/bin/python from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "<h1>Hello World!</h1>" if __name__ == "__main__": app.debug=True app.run(host='0.0.0.0',port=7000) liumiaocn:flask liumiao$
執(zhí)行&確認(rèn)
在HelloWorld示例中我們提到有兩種方式啟動(dòng)flask的微服務(wù)進(jìn)程,這里再添加一種,添加#!/usr/bin/python之后,同時(shí)對(duì)此文件添加可執(zhí)行權(quán)限比如755,即可使用.啟動(dòng)
liumiaocn:flask liumiao$ chmod 755 flask_1.py liumiaocn:flask liumiao$ ./flask_1.py * Serving Flask app "flask_1" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: on * Running on http://0.0.0.0:7000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 131-533-062
通過(guò)curl進(jìn)行結(jié)果確認(rèn):
liumiaocn:flask liumiao$ curl http://localhost:7000 <h1>Hello World!</h1>liumiaocn:flask liumiao$
頁(yè)面確認(rèn)
代碼示例
上面的示例過(guò)于簡(jiǎn)單,寫一個(gè)簡(jiǎn)單的完整的頁(yè)面來(lái)確認(rèn)一下
liumiaocn:flask liumiao$ cat flask_1.py #!/usr/bin/python from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return '<!DOCTYPE html> \ <html> \ <head> \ <meta charset="utf-8"> \ <title>Hello</title> \ </head> \ <body>\ <h1>Hello World!</h1> \ </body>\ </html>' if __name__ == "__main__": app.debug=True app.run(host='0.0.0.0',port=7000) liumiaocn:flask liumiao$
執(zhí)行&確認(rèn)
通過(guò)curl可以確認(rèn)頁(yè)面范圍信息
liumiaocn:flask liumiao$ ./flask_1.py * Serving Flask app "flask_1" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: on * Running on http://0.0.0.0:7000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 131-533-062
也可以通過(guò)瀏覽器來(lái)確認(rèn)title和頁(yè)面顯示
頁(yè)面模版
嵌在python的代碼中非常的麻煩,轉(zhuǎn)義的連接,以及源碼的查看都非常不方便。flask提供了Jinja2的模版渲染,只需要引入render_template即可使用。
import render_template
為了使用這個(gè)功能,首先需要在程序中做如下import
from flask import render_template
準(zhǔn)備頁(yè)面信息
比如將上文中嵌入的HTML頁(yè)面獨(dú)立成index.html,詳細(xì)信息如下:
liumiaocn:flask liumiao$ ls templates/ index.html liumiaocn:flask liumiao$ cat templates/index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello Template</title> </head> <body> <h1>Hello World!</h1> </body> </html> liumiaocn:flask liumiao$
注意事項(xiàng):flask會(huì)在當(dāng)前目錄的templates下搜索對(duì)應(yīng)的模版文件,所以需要?jiǎng)?chuàng)建templates文件夾,然后將模版html文件放入其中。
頁(yè)面調(diào)用
在頁(yè)面上只需要調(diào)用render_template即可實(shí)現(xiàn)url與對(duì)應(yīng)模版的關(guān)聯(lián),
render_template(“index.html”)
詳細(xì)代碼
liumiaocn:flask liumiao$ cat flask_2.py #!/usr/bin/python from flask import Flask from flask import render_template app = Flask(__name__) @app.route("/") def hello(): return render_template("index.html") if __name__ == "__main__": app.debug=True app.run(host='0.0.0.0',port=7000) liumiaocn:flask liumiao$
執(zhí)行&確認(rèn)
liumiaocn:flask liumiao$ python flask_2.py * Serving Flask app "flask_2" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: on * Running on http://0.0.0.0:7000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 131-533-062
使用curl可以看到詳細(xì)的html代碼,而且讀起來(lái)方便多了
liumiaocn:~ liumiao$ curl http://localhost:7000 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello Template</title> </head> <body> <h1>Hello World!</h1> </body> </html>liumiaocn:~ liumiao$
也可以通過(guò)瀏覽器確認(rèn)并查看源碼
小結(jié)
使用render_template,flask也可以像angular一樣非常方便的創(chuàng)建用于展示的模版視圖,我們已經(jīng)說(shuō)過(guò)render_template是基于Jinja2的模版,在下一篇文章中將繼續(xù)介紹template的數(shù)據(jù)交互和控制方式。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Python編程中flask的簡(jiǎn)介與簡(jiǎn)單使用
- Python編程在flask中模擬進(jìn)行Restful的CRUD操作
- python3使用flask編寫注冊(cè)post接口的方法
- Flask核心機(jī)制之上下文源碼剖析
- flask-restful使用總結(jié)
- python+flask實(shí)現(xiàn)API的方法
- 詳解Python下Flask-ApScheduler快速指南
- Flask實(shí)現(xiàn)跨域請(qǐng)求的處理方法
- python3 flask實(shí)現(xiàn)文件上傳功能
- Flask實(shí)現(xiàn)圖片的上傳、下載及展示示例代碼
相關(guān)文章
Python3使用TCP編寫一個(gè)簡(jiǎn)易的文件下載器功能
這篇文章主要介紹了Python3使用TCP編寫一個(gè)簡(jiǎn)易的文件下載器功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力
本篇文章介紹了用python編寫的曾經(jīng)風(fēng)靡的考驗(yàn)記憶力的小游戲,詳細(xì)介紹了整個(gè)思路和過(guò)程以及代碼,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-09-09你知道嗎實(shí)現(xiàn)炫酷可視化只要1行python代碼
這篇文章主要給大家介紹了關(guān)于利用Python進(jìn)行數(shù)據(jù)可視化常見的9種方法!文中介紹的方法真的超實(shí)用!對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08python用pdfplumber提取pdf表格數(shù)據(jù)并保存到excel文件中
在實(shí)際研究中我們經(jīng)常需要獲取大量數(shù)據(jù),而這些數(shù)據(jù)很大一部分以pdf表格的形式呈現(xiàn),如公司年報(bào)、發(fā)行上市公告等,下面這篇文章主要給大家介紹了關(guān)于利用python提取pdf表格數(shù)據(jù)并保存到excel文件中的相關(guān)資料,需要的朋友可以參考下2022-07-07python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理的操作方法
這篇文章主要介紹了python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理,需要的朋友可以參考下2022-10-10Python新建項(xiàng)目自動(dòng)添加介紹和utf-8編碼的方法
這篇文章主要介紹了Python新建項(xiàng)目自動(dòng)添加介紹和utf-8編碼的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Python對(duì)象轉(zhuǎn)JSON字符串的方法
這篇文章主要介紹了Python對(duì)象轉(zhuǎn)JSON字符串的方法,涉及Python基于json模塊實(shí)現(xiàn)json轉(zhuǎn)換的實(shí)現(xiàn)技巧,非常簡(jiǎn)便易懂,需要的朋友可以參考下2016-04-04