官术网_书友最值得收藏!

Handling basic configurations

The first thing that comes to mind is configuring a Flask application as per the need. In this recipe, we will try to understand the different ways in which Flask configurations can be done.

Getting ready

In Flask, a configuration is done on an attribute named config of the Flask object. The config attribute is a subclass of the dictionary data type, and we can modify it just like any dictionary.

How to do it…

For instance, to run our application in the debug mode, we can write the following:

app = Flask(__name__)
app.config['DEBUG'] = True

Tip

The debug Boolean can also be set at the Flask object level rather than at the config level:

app.debug = True

Alternatively, we can use this line of code:

app.run(debug=True)

Enabling the debug mode will make the server reload itself in the case of any code changes, and it also provides the very helpful Werkzeug debugger when something goes wrong.

There are a bunch of configuration values provided by Flask. We will come across them in the relevant recipes.

As the application grows larger, there originates a need to manage the application's configuration in a separate file as shown here. Being specific to machine-based setups in most cases will most probably not be a part of the version-control system. For this, Flask provides us with multiple ways to fetch configurations. The most frequently used ones are discussed here:

  • From a Python configuration file (*.cfg), the configuration can be fetched using:
    app.config.from_pyfile('myconfig.cfg')
  • From an object, the configuration can be fetched using:
    app.config.from_object('myapplication.default_settings')

    Alternatively, we can also use:

    app.config.from_object(__name__) #To load from same file
  • From the environment variable, the configuration can be fetched using:
    app.config.from_envvar('PATH_TO_CONFIG_FILE')

How it works…

Flask is intelligent enough to pick up only those configuration variables that are written in uppercase. This allows us to define any local variables in our configuration files/objects and leave the rest to Flask.

Tip

The best practice to use configurations is to have a bunch of default settings in app.py or via any object in our application itself and then override the same by loading it from the configuration file. So, the code will look like this:

app = Flask(__name__)
DEBUG = True
TESTING = True
app.config.from_object(__name__)
app.config.from_pyfile('/path/to/config/file')
主站蜘蛛池模板: 大厂| 文山县| 莲花县| 自治县| 鄂尔多斯市| 德保县| 渝北区| 枣阳市| 梁河县| 剑川县| 南溪县| 伊川县| 云南省| 万宁市| 湛江市| 林口县| 泸水县| 阿巴嘎旗| 镇安县| 休宁县| 阿克陶县| 灵宝市| 阿拉善右旗| 名山县| 宁晋县| 青川县| 阿鲁科尔沁旗| 资源县| 乌鲁木齐县| 江都市| 宝山区| 东阿县| 溆浦县| 尼勒克县| 环江| 游戏| 公主岭市| 寿宁县| 清流县| 横峰县| 湛江市|