Flask是一個基於Python開發而且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架,對於Werkzeug本質是Socket服務端,其用於接收http請求並對請求進行預處理,而後觸發Flask框架,開發人員基於Flask框架提供的功能對請求進行相應的處理,並返回給用戶,若是要返回給用戶複雜的內容時,須要藉助jinja2模板來實現對模板的處理,即:將模板和數據進行渲染,將渲染後的字符串返回給用戶瀏覽器。html
「微」(micro) 並不表示你須要把整個 Web 應用塞進單個 Python 文件(雖然確實能夠 ),也不意味着 Flask 在功能上有所欠缺。微框架中的「微」意味着 Flask 旨在保持核心簡單而易於擴展。Flask 不會替你作出太多決策——好比使用何種數據庫。而那些 Flask 所選擇的——好比使用何種模板引擎——則很容易替換。除此以外的一切都由可由你掌握。如此,Flask 能夠與您珠聯璧合。java
默認狀況下,Flask 不包含數據庫抽象層、表單驗證,或是其它任何已有多種庫能夠勝任的功能。然而,Flask 支持用擴展來給應用添加這些功能,如同是 Flask 自己實現的同樣。衆多的擴展提供了數據庫集成、表單驗證、上傳處理、各類各樣的開放認證技術等功能。Flask 也許是「微小」的,但它已準備好在需求繁雜的生產環境中投入使用。python
工具善其事,必先利其器。學習Flask所使用的軟件環境以下:web
python 3.6
Flask 0.12
Python的IDE我使用的是PyCharm。
pip3 install flask數據庫
第一步:使用PyCharm創建Flask工程flask
第二步:執行FlaskStudy.py瀏覽器
控制面板輸出以下:緩存
第三步:瀏覽器中輸入:服務器
使用Flask,咱們已經創建了一個最最簡單的web程序。cookie
第四步:簡單說明app程序
1.首先,咱們導入了 Flask 類。這個類的實例將會是咱們的 WSGI 應用程序。
2.接下來,咱們建立一個該類的實例,第一個參數是應用模塊或者包的名稱。 若是你使用單一的模塊(如本例),你應該使用
__name__ ,由於模塊的名稱將會因其做爲單獨應用啓動仍是做爲模塊導入而有不一樣( 也便是 '__main__' 或實際的導入名)。這是必須的,這樣 Flask 才知道到哪去找模板、靜態文件等等。
3.而後,咱們使用 route() 裝飾器告訴 Flask 什麼樣的URL 能觸發咱們的函數。
4.這個函數的名字也在生成 URL 時被特定的函數採用,這個函數返回咱們想要顯示在用戶瀏覽器中的信息。
5.最後咱們用 run() 函數來讓應用運行在本地服務器上。 其中 if name__ == '__main__': 確保服務器只會在該腳本被 Python 解釋器直接執行的時候纔會運行,而不是做爲模塊導入的時候。
第五步:更改配置
app.run(host="127.0.0.1", port=8090, debug=True)
能夠修改端口號,執行模式改成debug,調試模式。
debug=True在生成環境上不建議。app.debug = True完成一樣的功能
與Django的簡單比較
1.實例化Flask對象時,可選的參數
template_folder:模板所在文件夾的名字
root_path:能夠不用填,會自動找到,當前執行文件,所在目錄地址
在return render_template時會將上面兩個進行拼接,找到對應的模板地址
static_folder:靜態文件所在文件的名字,默認是static,能夠不用填
static_url_path:靜態文件的地址前綴,寫成什麼,訪問靜態文件時,就要在前面加上這個
如:在根目錄下建立目錄,templates和static,則return render_template時,能夠找到裏面的模板頁面;如在static文件夾裏存放11.png,在引用該圖片時,靜態文件地址爲:/xxxxxx/11.png
instance_path和
instance_relative_config是配合來用的。
這兩個參數是用來找配置文件的,當用app.config.from_pyfile('settings.py')這種方式導入配置文件的時候會用到
instance_relative_config:默認爲False,當設置爲True時,from_pyfile會從instance_path指定的地址下查找文件。
instsnce_path:指定from_pyfile查詢文件的路徑,不設置時,默認尋找和app.run()的執行文件同級目錄下的instance文件夾;若是配置了instance_path(注意須要是絕對路徑),就會從指定的地址下里面的文件
2.綁定路由關係的兩種方式
添加路由關係的本質:將url和視圖函數封裝成一個Rule對象,添加到Flask的url_map字段中
3.Flask中裝飾器應用
debug = True 是指進入調試模式,服務器會在 咱們的代碼修改後, 自動從新載入,有錯誤的話會提醒,每次修改代碼後就不須要再手動重啓
4.請求響應相關
1.獲取請求數據,及相應
2.flask中獲取URL後面的參數
GET請求:
URL爲: http://127.0.0.1:5000/login?name=%27%E8%83%A1%E5%86%B2%27&nid=2
原文連接:
https://www.cnblogs.com/huchong/p/8227606.html
識別圖中二維碼,領取python全套視頻資料