欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python編程flask使用頁(yè)面模版的方法

 更新時(shí)間:2018年12月28日 15:32:39   作者:liumiaocn  
今天小編就為大家分享一篇關(guān)于Python編程flask使用頁(yè)面模版的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

在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)鏈接

相關(guān)文章

  • Python3使用TCP編寫一個(gè)簡(jiǎn)易的文件下載器功能

    Python3使用TCP編寫一個(gè)簡(jiǎn)易的文件下載器功能

    這篇文章主要介紹了Python3使用TCP編寫一個(gè)簡(jiǎn)易的文件下載器功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力

    python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力

    本篇文章介紹了用python編寫的曾經(jīng)風(fēng)靡的考驗(yàn)記憶力的小游戲,詳細(xì)介紹了整個(gè)思路和過(guò)程以及代碼,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Django框架下在視圖中使用模版的方法

    Django框架下在視圖中使用模版的方法

    這篇文章主要介紹了Django框架下在視圖中使用模版的方法,Django是Python豐富多彩的眾框架中最有人氣的一個(gè),需要的朋友可以參考下
    2015-07-07
  • 你知道嗎實(shí)現(xiàn)炫酷可視化只要1行python代碼

    你知道嗎實(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-08
  • python用pdfplumber提取pdf表格數(shù)據(jù)并保存到excel文件中

    python用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-07
  • Python如何在列表尾部添加元素

    Python如何在列表尾部添加元素

    這篇文章主要介紹了Python如何在列表尾部添加元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理的操作方法

    python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理的操作方法

    這篇文章主要介紹了python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理,需要的朋友可以參考下
    2022-10-10
  • Python新建項(xiàng)目自動(dòng)添加介紹和utf-8編碼的方法

    Python新建項(xiàng)目自動(dòng)添加介紹和utf-8編碼的方法

    這篇文章主要介紹了Python新建項(xiàng)目自動(dòng)添加介紹和utf-8編碼的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • python學(xué)習(xí)筆記:字典的使用示例詳解

    python學(xué)習(xí)筆記:字典的使用示例詳解

    python字典的使用: python字典有很多好用的地方。字典每個(gè)元素都有鍵和值。如同現(xiàn)代漢語(yǔ)字典中的拼音和對(duì)應(yīng)的文字。字典中的鍵是唯一的,而值不一定唯一。你看,和現(xiàn)代漢語(yǔ)字典多么的相似。
    2014-06-06
  • Python對(duì)象轉(zhuǎn)JSON字符串的方法

    Python對(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

最新評(píng)論