zoukankan      html  css  js  c++  java
  • Python Flask 配置文件

    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. 测试结果

  • 相关阅读:
    洛谷P3796
    cf1291c-Mind Control
    莫比乌斯函数
    C. Mixing Water(三分)
    E. Modular Stability(思维构造)
    【美团杯2020】平行四边形
    原根定义
    E. Are You Fired?(思维)
    102606C. Coronavirus Battle time limit per test4 seconds(三维拓扑序)
    E
  • 原文地址:https://www.cnblogs.com/supery007/p/8205659.html
Copyright © 2011-2022 走看看