首頁>技術>

flask是何方神聖?

Flask是一個輕量級的可定製框架,使用Python語言編寫,較其他同類型框架更為靈活、輕便、安全且容易上手。它可以很好地結合MVC模式進行開發,開發人員分工合作,小型團隊在短時間內就可以完成功能豐富的中小型網站或Web服務的實現。另外,Flask還有很強的定製性,使用者可以根據自己的需求來新增相應的功能,在保持核心功能簡單的同時實現功能的豐富與擴充套件,其強大的外掛庫可以讓使用者實現個性化的網站定製,開發出功能強大的網站。

環境搭建

python的安裝

python語言現在是炙手可熱的,曾經大學時代的我,總有一個軟體開發的夢想,那就是要學一門最強大的,啥都能夠乾的語言,從這個層面而言,python那就是我心中的女神。Python 是一種代表簡單主義思想的語言。閱讀一個良好的 Python 程式就感覺像是在讀英語一樣,儘管這個英語的要求非常嚴格!Python 的這種虛擬碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。同時,關鍵是它及其強大, 擁有龐大的標準庫。它可以幫助你處理各種工作,反正就是萬金油一枚。記住,只要安裝了 Python,就可以上天入地,比如屌絲的我,一個很low的用法,把python當計算器用,高大上的麼,現在的AI裡面,python也是臺柱子一根。

python秉承的是簡單主義,那麼安裝也是及其簡單的,下載了安裝包以後,就如同一般的軟體一般直接setup就行了,需要注意的是,最好將安裝路徑載入到系統搜尋路徑中,其二是尤其是要注意python的版本,2.×和3.×的版本還是有不小的差異的,不過現在最新的是3.7,經典的2.×版本是2.6和2.7。看實際的需要吧,主要是取決於python的庫的版本支援。

flask的安裝

類似於java中的jar包,flask也是python擴充套件庫中的一種,那麼在安裝了python之後,配置了pip工具後,即可通過pip flask完成flask的安裝。那麼要問我pip是什麼,解釋一下,pip 是 Python 包管理工具,該工具提供了對Python 包的查詢、下載、安裝、解除安裝的功能。Python 2.7.9 + 或 Python 3.4+ 以上版本都自帶 pip 工具,在執行了pip flask後,如果判斷flask是否安裝成功了呢?可以通過 pip show flask來檢視:

flask下的微服務架構

第一步:引用模組

import flask

類似於java中的import,這裡的含義一樣,就是將我們前文中安裝的flask進行匯入。

第二步:建立flask例項

app = Flask(__name__)

建立一個應用app物件,python是動態語言,變數只要依據先申明後使用的原則即可,那麼其中比較晦澀的是__name__,這是在其他語言中看不到的,那麼__name__代表什麼呢?其實__name__就是標識模組的名字的一個系統變數。這裡分兩種情況:假如當前模組是主模組(也就是呼叫其他模組的模組),那麼此模組名字就是__main__;假如此模組是被import的,則此模組名字為檔名字。這裡建立了一個Flask的例項app,它接收包或者模組的名字作為引數,但一般都是傳遞__name__。

第三步:配置路由

@app.route("/hello") def hello():  return "Hello World!"if __name__ == "__main__":  app.run()

是不是很眼熟,和java中的Annotation很類似,到這裡估計有點spring mvc基礎的童鞋一看就明白了,上下文是hello的就執行函式hello(),網頁輸出就是"Hello world!"。對!這就是一個最簡單的flash應用,是不是很快,那個號稱“黃色閃光”火影四代目波風水門,也快不過如此吧!老闆,就是凶惡的尾獸,今天我就可以搞定你。

第四步:執行

python hello_flask.py

看看效果,開啟瀏覽器,訪問http://localhost/hello,是不是看到了Hello world!對了執行到這裡,你就入門了,師傅我已經把你領進門了,後面就看你自己的了。呵呵

尾聲

看不到效果,開玩笑,2/8法則,80%的問題都是20%的原因造成的,埠被佔用了,很簡單,改變應用的服務埠,將 app.run() 改為 app.run(port=8080) 即可。

總結

對java了解的開發者可能會發現這裡基本和spring的requestmapping幾乎如出一轍,至少在restapi的實現上有相似之處。設定和實現起來非常地方便,這就是flask用於web開發入門的簡單之處。

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • XFF漏洞攻擊原理及防禦方案