Python Web框架flask
Python有很多Web框架,可謂是百家爭鳴,我這裏列出幾個比較叼的幾個框架
- Django 市場占有率最高,官方文檔幾近完美,但是適合比較大的項目,小項目會顯得累贅。
- Tornado 可異步,性能高,提供更多的底層細節,還能進行Web Socket,但是和數據庫…..(大坑)
- Web.py 小巧,精煉,擴展不是很多,而且問題是作者太牛掰,被上帝請去喝茶了。
- Flask 年輕,2010年出現、可擴展、小巧、內置開發服務器和調試器、使用jinja2模板、完全兼容WSGI 1.0
flask框架安裝直接在pycharm裏面下載就好,測試flask安裝成功後,開始以下:
Flask最最簡單的一個頁面
from flask import Flask # 導入包 app = Flask(__name__) # 創建一個Web應用 @app.route(‘/‘) # 定義路由(Views),可以理解為定義頁面的URL def index(): return "Hello World" # 渲染頁面 if __name__ == "__main__": app.run(host=‘127.0.0.1‘,port=8080) # 運行,指定監聽地址為 127.0.0.1:8080
結果如下:
點擊 進入網頁 可以看到 “Hello World”
開啟Debug調試
修改了代碼,我們需要將開啟的Web程序關閉再開啟,這樣會影響開發效率,也很煩。
Flask內部有一個功能,專門針對這樣的事情發生。
if __name__ == "__main__": app.run(host=‘127.0.0.1‘,port=8080,debug=True)
debug參數,這個參數默認是False
開啟這個功能後,我們每次修改完代碼,Web應用對自動進行調整。
現在修改代碼並且保存,應用就會自動更新你的代碼。
分析
1 from flask import Flask # 導入包 2 3 app = Flask(__name__) # 創建一個Web應用 4 5 @app.route(‘/‘) # 定義路由(Views),可以理解為定義頁面的URL 6 def index(): 7 return "Hello World" # 渲染頁面 8 9 if __name__ == "__main__": 10 app.run(host=‘127.0.0.1‘, port=8080) # 運行,指定監聽地址為 127.0.0.1:8080
第3行:Flask需要一個參數,這個參數通常是主模塊或是包的名字。所以通常會傳入 __name__
第5行:可以通過使用app.config類來修改配置,開啟調試模式。當然,這裏所采用的方法只能適用於設置很少的時候,以後會介紹另外幾種修改配置的方法。
第7行: 還記得我之前提到了MVC嗎?這裏就是其中V,就是路由。這裏的代碼的目的就是為我們來指定一個路由,也就是頁面的地址。
第8 – 9行: 使用app.route()裝飾器會將URL和執行的視圖函數(函數 index )的關系保存在app.url_map屬性上。當你訪問指定的URL時,就會調用這個函數。當遇到第一個return時,就會結束。其中的return就是你的response
第12行: 執行app.run來啟動服務器。默認的Flask會監聽的地址是127.0.0.1:5000。我們指定host和port參數,就修改了監聽地址。 服務啟動後,會先判斷參數host以及port是否為None,如果為None,就會將host和port修改為默認值。然後會判斷debug。然後就會調用werkzeug.serving.run_simple來啟動Web服務,默認會使用單進程的werkzeug.serving_BaseWSGIServer來處理客戶端的請求。
還要註意的就是,這裏的app.run的啟動方法,只適合在碼代碼的時候調試。
Python Web框架flask