Flask框架從入門到精通之引數配置(二)

〆 小源。發表於2019-04-19

知識點:
1、引數配置

一、概況

上一篇我們已經把Flask第一個程式執行起來了,那麼這一篇主要講一下Flask引數的配置。

二、配置引數

Flask引數配置方式有很多種,每一種都可以達到結果,在合適的場景選擇合適的配置方式。

  • 配置檔案 在檔案加中新建一個config.cfg配置檔案,在配置檔案上寫上下面語句,表示開啟除錯模式。這樣當我們程式出錯的時候,就能知道錯誤在多少行,方便我們快速定位錯誤。
DEBUG = True
複製程式碼

在程式中載入配置檔案

from flask import Flask

'''
__name__:表示當前的模組名字
建立Flask物件,Flask會以傳入模組的位置當做家目錄
'''
app = Flask(__name__)


@app.route('/')  # 代表首頁
def hello_world():  # 檢視函式
    print(1/0)
    return 'Hello World!'  # 返回內容


# 配置檔案
app.config.from_pyfile('config.cfg')

if __name__ == '__main__':
    app.run()  # 執行程式
複製程式碼

我們可以看出,這個程式是有錯的,因為1/0會出現異常。當我們在瀏覽器訪問的時候,可以看到

在這裡插入圖片描述

  • 類方式配置
#類方式配置
class Config(object):
    DEBUG = True


app.config.from_object(Config)

複製程式碼
  • 直接操作配置 直接操作適用於配置引數較少的場景,config本質其實就一個字典。
#直接操作
app.config["DEBUG"] = True
複製程式碼
  • 物件上配置
app.debug = True
複製程式碼
  • 引數傳入配置
app.run(debug=True)  # 執行程式
複製程式碼

三、取配置引數

有很多情況,我們會有需求,想在檢視函式中,把配置引數取到並使用。這裡面提供了兩種拿到的辦法:

from flask import Flask, current_app

'''
__name__:表示當前的模組名字
建立Flask物件,Flask會以傳入模組的位置當做家目錄
'''
app = Flask(__name__)


@app.route('/')  # 代表首頁
def hello_world():  # 檢視函式
    # 如果能拿到app物件,就可以通過app取自定義的配置引數
    print(app.config.get('TEST'))
    # 如果拿不到,可以通過current_app這個app的代理人拿到
    print(current_app.config.get('TEST'))
    return 'Hello World!'  # 返回內容


# 直接操作
app.config["DEBUG"] = True
app.config["TEST"] = 'test'

if __name__ == '__main__':
    app.run()  # 執行程式

複製程式碼

支援外部訪問

我們修改呼叫 run() 的方法使我們的伺服器公開可用,如下:

 # 0.0.0.0代表任何能代表這臺機器的地址都可以訪問
 app.run(host='0.0.0.0', port=5000)  # 執行程式
複製程式碼

這個時候我們可以通過http://127.0.0.1:5000/可以訪問我們的網站,也可以通過自己的本機ip去訪問http://192.168.1.101:5000/。可以通過ifconfig命令檢視自己的本機IP。

歡迎關注我的公眾號:

Flask框架從入門到精通之引數配置(二)

相關文章