使用Flask快速搭建前端

Flask介紹

Flask是一個(gè)使用 Python 編寫的輕量級(jí) Web 應(yīng)用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎則使用 Jinja2。
Flask也被成為『微框架』。因?yàn)樗褂煤?jiǎn)單的核心坠非,用 extension 增加其他功能。Flask沒(méi)有默認(rèn)使用的數(shù)據(jù)庫(kù)果正、窗體驗(yàn)證工具炎码。
它的官方地址:http://flask.pocoo.org

簡(jiǎn)單的Hello world

在一個(gè)python文件hello.py中鍵入以下代碼:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

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

執(zhí)行命令
python hello.py

運(yùn)行結(jié)果


1.png

在瀏覽器訪問(wèn) http://127.0.0.1:5000
顯示如下


2.png

more

路由配置

flask的路由是由route()裝飾器把一個(gè)函數(shù)綁定到一個(gè)URL實(shí)現(xiàn)的。
下面是一些基本的例子:

@app.route('/')
def index():
    return 'Index Page'

@app.route('/hello')
def hello():
    return 'Hello World'

當(dāng)然一個(gè)web框架的路由肯定不可能只做到這些簡(jiǎn)單固定的路由舱卡,flask自己可以定義一些規(guī)則辅肾。

變量規(guī)則

通過(guò)把 URL 的一部分標(biāo)記為 <variable_name> 就可以在 URL 中添加變量。標(biāo)記的 部分會(huì)作為關(guān)鍵字參數(shù)傳遞給函數(shù)轮锥。通過(guò)使用 <converter:variable_name> 矫钓,可以 選擇性的加上一個(gè)轉(zhuǎn)換器,為變量指定規(guī)則舍杜。請(qǐng)看下面的例子:

@app.route('/user/<username>')
def show_user_profile(username):
    # show the user profile for that user
    return 'User %s' % username

@app.route('/post/<int:post_id>')
def show_post(post_id):
    # show the post with the given id, the id is an integer
    return 'Post %d' % post_id

現(xiàn)有的轉(zhuǎn)換器有:

int float path
接受整數(shù) 接受浮點(diǎn)數(shù) 和缺省情況相同新娜,但也接受斜杠

簡(jiǎn)單介紹到這里,更多規(guī)則可以看官方文檔既绩,地址是 http://werkzeug.pocoo.org/docs/0.11/routing/

渲染模板

在Python內(nèi)部生成HTML不好玩概龄,且相當(dāng)笨拙。因?yàn)槟惚仨氉约贺?fù)責(zé)HTML轉(zhuǎn)義饲握,以確保應(yīng)用的安全私杜。因此蚕键, Flask自動(dòng)為你配置的 Jinja2 模板引擎,就像Java語(yǔ)言里最簡(jiǎn)單的模板JSP一樣衰粹。

Flask使用render_template()方法渲染模板锣光,我們要做的只要提供模板名稱和需要的參數(shù)或者說(shuō)變量就行了。
舉個(gè)栗子:

from flask import render_template

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)

Flask一般會(huì)在templates文件夾內(nèi)尋找名稱對(duì)應(yīng)的模板文件铝耻。

接下來(lái)就要看看Jinja2模板的威力了誊爹,就像使用Java語(yǔ)言或者PHP里的html模板標(biāo)簽語(yǔ)言。

舉個(gè)簡(jiǎn)單使用Jinja2模板的栗子:(hello.html)

<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello World!</h1>
{% endif %}

是不是很像PHP瓢捉?哈哈频丘,以前用過(guò)PHP或者JSTL的,這模板已經(jīng)是簡(jiǎn)單得不能再簡(jiǎn)單泡态。
在模板內(nèi)部你也可以訪問(wèn) request 搂漠、session 和 g 對(duì)象,以及 get_flashed_messages() 函數(shù)兽赁。

這幾個(gè)對(duì)象和函數(shù)都可以在官方API文檔中查找得到状答,這里不細(xì)說(shuō)冷守。

總結(jié)

Flask真的是一個(gè)超快速開(kāi)發(fā)web的框架刀崖,配合bootstrap使用快到?jīng)]朋友。Flask官方文檔中的quick start已經(jīng)能覆蓋到我的功能需求拍摇,非常容易學(xué)亮钦。我經(jīng)常用它來(lái)做一些數(shù)據(jù)項(xiàng)目的前端展示或者一些數(shù)據(jù)檢索展示,但如果要做一個(gè)大型網(wǎng)站的話充活,這個(gè)框架恐怕不太適合蜂莉,目前我還沒(méi)看到它的一些關(guān)于并發(fā)的支持。做大型網(wǎng)站我還是會(huì)選擇傳統(tǒng)的Java語(yǔ)言混卵,因?yàn)楸容^容易找到人手映穗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市幕随,隨后出現(xiàn)的幾起案子蚁滋,更是在濱河造成了極大的恐慌,老刑警劉巖赘淮,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辕录,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡梢卸,警方通過(guò)查閱死者的電腦和手機(jī)走诞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蛤高,“玉大人蚣旱,你說(shuō)我怎么就攤上這事碑幅。” “怎么了塞绿?”我有些...
    開(kāi)封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵枕赵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我位隶,道長(zhǎng)拷窜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任涧黄,我火速辦了婚禮篮昧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘笋妥。我一直安慰自己懊昨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布春宣。 她就那樣靜靜地躺著酵颁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪月帝。 梳的紋絲不亂的頭發(fā)上躏惋,一...
    開(kāi)封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音嚷辅,去河邊找鬼簿姨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛簸搞,可吹牛的內(nèi)容都是我干的扁位。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼趁俊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼域仇!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起寺擂,我...
    開(kāi)封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤暇务,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后沽讹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體般卑,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年爽雄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蝠检。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挚瘟,死狀恐怖叹谁,靈堂內(nèi)的尸體忽然破棺而出饲梭,到底是詐尸還是另有隱情,我是刑警寧澤焰檩,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布憔涉,位于F島的核電站,受9級(jí)特大地震影響析苫,放射性物質(zhì)發(fā)生泄漏兜叨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一衩侥、第九天 我趴在偏房一處隱蔽的房頂上張望国旷。 院中可真熱鬧,春花似錦茫死、人聲如沸跪但。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屡久。三九已至,卻和暖如春爱榔,著一層夾襖步出監(jiān)牢的瞬間被环,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工搓蚪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛤售,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓妒潭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親揣钦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雳灾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容