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)
    

      

    全世界的程序员们联合起来吧!
  • 相关阅读:
    Importing csv data file in SQLite3
    【北京】【高级爬虫开发工程师、高级网页分析工程师】知名上市互联网公司招聘【猎头】
    介绍一个C++的ORM工具ODB(一)
    基础c练习
    virtualenv中文文档放出,请雅正
    navicat sqlite使用了一种wine的方式来支持linux平台,
    之前 传闻已经的djblets竟是reviewboard团队整的
    在HTML5 Web SQL中使用ORM工具 前端开发 e800
    本来想注册个51cto的blog
    Portable way to get file size (in bytes) in shell?
  • 原文地址:https://www.cnblogs.com/chaojiyingxiong/p/15109248.html
Copyright © 2011-2022 走看看