標籤:服務 ase 設定 djang inf web應用 監聽 python als
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),可以理解為定義頁面的URLdef 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