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

  • 相关阅读:
    js闭包
    mysql 创建索引
    模拟title实现提示功能
    数组的深拷贝和浅拷贝
    JavaScript总结之DOM基本操作(三)
    JavaScript总结之数组操作(二)
    JavaScript总结之字符串操作(一)
    Visual Studio Code中JavaScript开发环境的配置
    PhpStorm+PhpStudy开发环境的配置
    如何在个人网站上添加logo图标
  • 原文地址:https://www.cnblogs.com/supery007/p/8205659.html
Copyright © 2020-2023  润新知