Pyhon Flask框架:第一個Flask程序

Flask框架介紹

Flask誕生於2010年,是Armin ronacher用Python語言基於Werkzeug工具箱編寫的輕量級Web開發框架,其本身相當於一個內核,其他幾乎所有的功能都要用到擴展,都需要第三方的擴展來實現。

其WSGI工具箱采用Werkzeug(路由模塊),模板引擎則使用Jinja2,這兩個也是Flask框架的核心,它們分別負責業務處理和安全方面的功能。其中:

  • Werkzeug庫:支持URL路由請求集成,一次可以響應多個用戶的訪問請求;支持Cookie和會話管理,通過身份緩存數據建立長久連接關系,並提高用戶訪問速度;支持交互式Javascript調試,提高用戶體驗;可以處理HTTP基本事務,快速響應客戶端推送過來的訪問請求。
  • Jinja2庫:支持自動HTML轉移功能,能夠很好控制外部黑客的腳本攻擊。

Flask框架的作用

那麼Flask框架的作用是什麼呢?

Flask是一個Web框架,它的作用主要是為瞭開發Web應用程序,Web大傢應該都瞭解,就是網頁,所以我們學完瞭Flask就可以自己寫個小網站瞭。

除瞭Flask框架,Python還有很多web框架,例如Django,Tormado框架等,其中最出名的框架是Django,最靈活的框架算是Flask。

Flask框架常用擴展包

剛才說瞭,Flask本身相當於一個內核,其他幾乎所有的功能都要用到擴展,都需要第三方的擴展來實現。

那麼它常有的擴展包有哪些呢?

  • Flask-SQLalchemy:操作數據庫;
  • Flask-script:插入腳本;
  • Flask-migrate:管理遷移數據庫;
  • Flask-Session:Session存儲方式指定;
  • Flask-WTF:表單;
  • Flask-Mail:郵件;
  • Flask-Bable:提供國際化和本地化支持,翻譯;
  • Flask-Login:認證用戶狀態;
  • Flask-OpenID:認證;
  • Flask-RESTful:開發REST API的工具;
  • Flask-Bootstrap:集成前端Twitter Bootstrap框架;
  • Flask-Moment:本地化日期和時間;
  • Flask-Admin:簡單而可擴展的管理接口的框架。

創建Flask項目

簡單地瞭解瞭Flask框架是什麼,其作用是什麼,現在我們開始創建一個Flask框架項目,這裡我們推薦用PyCharm,不要問為什麼,問就是方便、好用。

首先打開PyCharm,創建我們第一個Flask項目,如下圖所示:

一般情況下,我們隻需要修改一下項目名和選擇Python編譯器即可點擊Create,點擊後,我們再點擊This Window,這樣我們就成功創建瞭一個Flask框架項目,如下圖所示:

其中:

  • static是靜態文件夾,裡面可以放js,css等文件;
  • templates是模板文件夾;
  • venv是虛擬環境文件夾,裡面放著我們pip安裝的庫和一些模塊、包;
  • app.py是啟動程序。

創建完項目後,我們查看當前項目已經安裝瞭哪些包,執行代碼如下:

pip list

執行結果如下圖所示:

每個人執行的結果可能不一樣,可能會少瞭或多瞭一兩個包,但沒關系,當我們需要的時候,再去安裝即可。

app.py介紹

接下來我們來介紹一下app.py,其文件內容如下:

from flask import Flask
​
#創建Flask的實例對象
app = Flask(__name__)
​
#裝飾器
@app.route('/')
def hello_world():
    #視圖函數
    return 'Hello World!'
​
if __name__ == '__main__':
    app.run()

其中:

1.導入Flask模塊,該類的實例將會成為我們的WSGI應用;

2.創建一個該類的實例,該實例可以傳遞以下參數:

1、__name__是一個適用於大多數情況的快捷方式,有瞭這個參數, Flask 才能知道在哪裡可以找到模板和靜態文件等東西;

2、static_url_path: 訪問靜態資源的url前綴

3、static_folder: 默認‘static’

4、template_folder: 默認‘templates’

3.使用route()裝飾器來告訴Flask觸發函數的URL ;

4.視圖函數返回需要在用戶瀏覽器中顯示的信息;

5.app.run()啟動一個web服務器來運行我們的程序。

運行Flask程序

我們先什麼都不做,運行一下代碼,試試它會出現什麼。

有兩種運行方法,一種是直接運行,另一種是在Terminal裡面運行。

直接運行,運行結果如下:

FLASK_APP = app.py
FLASK_ENV = development
FLASK_DEBUG = 0
In folder C:/Users/LIN/Desktop/Flask開發
C:\Users\LIN\Desktop\Flask開發\venv\Scripts\python.exe -m flask run
 * Serving Flask app 'app.py' (lazy loading)
 * Environment: development
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

在Terminal裡面運行,運行結果如下圖所示:

這兩種運行方式主要是Environment結果不同,但也差不多,因為在Terminal裡面運行中,會有個WARNING警告,告訴我們這是一個開發服務器,不要在生產部署中使用它。

我們點擊http://127.0.0.1:5000/就會彈出一個瀏覽器,如下圖所示:

那麼我們就要思考,為什麼點擊這個網址就會彈出Hello World!,而不是彈出其他呢。

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: