zoukankan      html  css  js  c++  java
  • flask中config

    def get_db_uri(dbinfo):
        ENGINE = dbinfo.get("ENGINE") or 'mysql'
        DRIVER = dbinfo.get("DRIVER") or "pymysql"
        USER = dbinfo.get("USER") or "root"
        PASSWORD = dbinfo.get("PASSWORD") or "cjsoft100"
        HOST = dbinfo.get("HOST") or "cdb-pi42xze4.bj.tencentcdb.com"
        PORT = dbinfo.get("PORT") or "10091"
        NAME = dbinfo.get("NAME") or "develop"
    
        print("{}+{}://{}:{}@{}:{}/{}".format(ENGINE, DRIVER, USER, PASSWORD, HOST, PORT, NAME))
        return "{}+{}://{}:{}@{}:{}/{}".format(ENGINE, DRIVER, USER, PASSWORD, HOST, PORT, NAME)
    
    
    class Config:
    
        DEBUG = False
    
        TESTING = False
    
        SECRET_KEY = "dsgsdhsa"
    
        SQLALCHEMY_TRACK_MODIFICATIONS = False
    
    
    class DevelopConfig(Config):
    
        DEBUG = True
    
        DATABASE = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "123456",
            "HOST": "127.0.0.1",
            "PORT": "3306",
            "NAME": "shop"
        }
    
        SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE)
    
    
    class TestingConfig(Config):
    
        TESTING = True
    
        DATABASE = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "cjsoft100",
            "HOST": "cdb-pi42xze4.bj.tencentcdb.com",
            "PORT": "10091",
            "NAME": "shop"
        }
    
        SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE)
    
    
    class StagingConfig(Config):
    
        DATABASE = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "cjsoft100",
            "HOST": "cdb-pi42xze4.bj.tencentcdb.com",
            "PORT": "10091",
            "NAME": "shop"
        }
    
        SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE)
    
    
    class ProductConfig(Config):
    
        DATABASE = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "cjsoft100",
            "HOST": "cdb-pi42xze4.bj.tencentcdb.com",
            "PORT": "10091",
            "NAME": "shop"
        }
    
        SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE)
    
    
    envs = {
        "develop": DevelopConfig,
        "testing": TestingConfig,
        "staging": StagingConfig,
        "product": ProductConfig,
        "default": DevelopConfig
    }
    

     其实最终是把数据库的一些账号密码写成类的形式:

    class Config:
    
        DEBUG = False
    
        TESTING = False
    
        SECRET_KEY = "dsgsdhsa"
    
        SQLALCHEMY_TRACK_MODIFICATIONS = False
        
        SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}".format(ENGINE, DRIVER, USER, PASSWORD, HOST, PORT, NAME)
    

      然后用app.config.from_object(Config)

    from flask import Flask
    
    class Config:
        DEBUG = False
    
        TESTING = False
    
        SECRET_KEY = "dsgsdhsa"
    
        SQLALCHEMY_TRACK_MODIFICATIONS = False
    
        SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}".format(ENGINE, DRIVER, USER, PASSWORD, HOST, PORT, NAME)
    
    
    def create_app(Config):
        app = Flask(__name__)
        # 用from_object方法写入配置类
        app.config.from_object(Config)
    
        return app
    
    create_app(Config)
    

      

    全世界的程序员们联合起来吧!
  • 相关阅读:
    Go之运算符
    前端开发之工具库
    MVC与MVVM
    开发工具之Vscode编辑器
    常用名词汇总
    python常见错误总结
    Python之常用第三方库总结
    PHP程序员的成长路线
    web 应用常见安全漏洞
    redis和memcached的区别详解
  • 原文地址:https://www.cnblogs.com/chaojiyingxiong/p/15109248.html
Copyright © 2011-2022 走看看