知識點:
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。
歡迎關注我的公眾號: