1. 什么是配置文件?
就是當程序調用的一些參數,文件路徑,方法或者類放到一個文件中,
當下次需要修改的一個參數的時候,不用再從所有關聯的程序中找到該參數挨個修改,
比較繁瑣。像Django中,程序啟動的時候需要加載setting.py文件,該文件配置包含
中間件,數據庫鏈接,文件路徑,靜態文件模板路徑等參數,當視圖函數鏈接數據庫或
創建靜態文件的時候根據配置文件找到參數即可進行鏈接或創建文件等等操作,修改
也是如此,只要找到參數修改配置參數即可。
2. 使用配置文件
from flask import Flask,session,current_app # 創建配置 app = Flask(__name__) app.secret_key ='sdfsdfsdf' # 方式一: # app.config['SESSION_COOKIE_NAME'] = 'session_lvning' # # 方式二: # app.config.from_pyfile0('settings.py') # 方式三: # import os # os.environ['FLAKS-SETTINGS'] = 'settings.py' # app.config.from_envvar('FLAKS-SETTINGS') # 方式四:推薦使用 app.config.from_object('settings.DevConfig') @app.route('/index',endpoint='xx',methods=['GET']) def index(): print(current_app.config['DB']) session['xx3'] = 123 return "xxx" if __name__ == '__main__': # app.__call__ app.run()
3. 配置文件
class BaseConfig(object): NNN = 123 class TestConfig(BaseConfig): DB = '127.0.0.1' class DevConfig(BaseConfig): DB = '192.168.1.1' class ProConfig(BaseConfig): DB = '47.18.1.1'
4. 項目案例:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:supery import importlib from flask import Flask,request,current_app app = Flask(__name__) app.config.from_object('setting.BaseConfig') @app.route('/index',endpoint='index',methods=['GET']) def index(): print(current_app.config['MESSAGE_CLASSES']) setting = current_app.config['MESSAGE_CLASSES'] for cls_path in setting: module_path,class_name = cls_path.rsplit('.',maxsplit=1) m = importlib.import_module(module_path) obj = getattr(m,class_name)() obj.send('哇呀呀','import_model','906906659@qq.com','supery007',) return '123' if __name__ == '__main__': app.run()
5. MSG配置參數
class BaseConfig(object): NNN = 123 MESSAGE_CLASSES = [ 'utils.message.email.Email', 'utils.message.msg.Msg', 'utils.message.wx.WeChat', 'utils.message.dingding.DingDing', ]
6. 測試結果