赞
踩
如果我们的项目比较小我们可已经配置信息直接写在代码里面。下面以设置数据库的连接信息为例:
from flask import Flask import pymysql app = Flask(__name__) # 直接在代码中赋值 app.config['MYSQL_HOST'] = '172.171.xxx.yyy' app.config['MYSQL_PORT'] = 3306 app.config['MYSQL_USER'] = 'username' app.config['MYSQL_PASSWD'] = 'passwd' app.config['MYSQL_DB'] = 'db_name' @app.route("/connect") def connect_to_mysql(): conn = pymysql.connect( host=app.config['MYSQL_HOST'], port=app.config['MYSQL_PORT'], user=app.config['MYSQL_USER'], passwd=app.config['MYSQL_PASSWD'], db=app.config['MYSQL_DB'] ) return conn if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
当我们的项目较大时我们要将大量的配置信息写在配置文件里面。按照项目需要具体可使用如下几种方式。
创建 setting.py 文件,添加如下内容:
MYSQL_HOST = '172.171.xxx.yyy'
MYSQL_PORT = 3306
MYSQL_USER = 'username'
MYSQL_PASSWD = 'passwd'
MYSQL_DB = 'db_name'
在 app.py 文件中调用:
from flask import Flask import pymysql from setting import MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWD, MYSQL_DB app = Flask(__name__) @app.route("/connect") def connect_to_mysql(): conn = pymysql.connect( host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER, passwd=MYSQL_PASSWD, db=MYSQL_DB ) return conn if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
创建 setting.py 文件,添加如下内容:
class DevSetting:
MYSQL_HOST = '172.171.xxx.yyy'
MYSQL_PORT = 3306
MYSQL_USER = 'username'
MYSQL_PASSWD = 'passwd'
MYSQL_DB = 'db_name'
在 app.py 文件中调用:
from flask import Flask import pymysql from setting import DevSetting # 调用DevSetting类 app = Flask(__name__) app.config.from_object(DevSetting) # 获取数据库配置信息 @app.route("/connect") def connect_to_mysql(): conn = pymysql.connect( host=app.config['MYSQL_HOST'], port=app.config['MYSQL_PORT'], user=app.config['MYSQL_USER'], passwd=app.config['MYSQL_PASSWD'], db=app.config['MYSQL_DB'] ) return conn if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
我们在开发时可能有多个环境,包括:开发环境、测试环境、生产环境。这时,导入数据库配置时,只需要基于config字典+配置类,可实现多种环境的配置。
(1)创建 setting.py
# [数据库配置] # 基础配置 class BaseSetting: MYSQL_PORT = 3306 MYSQL_USER = 'username' MYSQL_PASSWD = 'passwd' MYSQL_DB = 'db_name' # 开发环境 class DevSetting(BaseSetting): MYSQL_HOST = '172.171.xxx.yyy' # 测试环境 class TestSetting(BaseSetting): MYSQL_HOST = '172.171.xxx.zzz' # 生产环境 class ProdSetting(BaseSetting): MYSQL_HOST = '172.171.yyy.zzz' config = { 'dev': DevSetting, 'test': TestSetting, 'prod': ProdSetting, 'default': DevSetting }
(2)app.py 中导入配置
from flask import Flask import pymysql from setting import config app = Flask(__name__) app.config.from_object(config['dev']) # 获取环境配置信息 @app.route("/connect") def connect_to_mysql(): conn = pymysql.connect( host=app.config['MYSQL_HOST'], port=app.config['MYSQL_PORT'], user=app.config['MYSQL_USER'], passwd=app.config['MYSQL_PASSWD'], db=app.config['MYSQL_DB'] ) return conn if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。