improve env vars config example

This commit is contained in:
jordan bonser 2019-03-09 00:41:57 +00:00 committed by David Lord
parent b765e0db50
commit 800c744fe7
No known key found for this signature in database
GPG key ID: 7A1C87E3F5BC42A8

View file

@ -437,6 +437,7 @@ methods on the config object as well to load from individual files. For a
complete reference, read the :class:`~flask.Config` object's complete reference, read the :class:`~flask.Config` object's
documentation. documentation.
Configuring from Environment Variables Configuring from Environment Variables
-------------------------------------- --------------------------------------
@ -448,15 +449,13 @@ Environment variables can be set on Linux or OS X with the export command in
the shell before starting the server:: the shell before starting the server::
$ export SECRET_KEY='5f352379324c22463451387a0aec5d2f' $ export SECRET_KEY='5f352379324c22463451387a0aec5d2f'
$ export DEBUG=False $ export MAIL_ENABLED=false
$ python run-app.py $ python run-app.py
* Running on http://127.0.0.1:5000/ * Running on http://127.0.0.1:5000/
* Restarting with reloader...
On Windows systems use the `set` builtin instead:: On Windows systems use the ``set`` builtin instead::
>set SECRET_KEY='5f352379324c22463451387a0aec5d2f' >set SECRET_KEY='5f352379324c22463451387a0aec5d2f'
>set DEBUG=False
While this approach is straightforward to use, it is important to remember that While this approach is straightforward to use, it is important to remember that
environment variables are strings -- they are not automatically deserialized environment variables are strings -- they are not automatically deserialized
@ -464,17 +463,15 @@ into Python types.
Here is an example of a configuration file that uses environment variables:: Here is an example of a configuration file that uses environment variables::
# Example configuration
import os import os
ENVIRONMENT_DEBUG = os.environ.get("DEBUG", default=False) _mail_enabled = os.environ.get("MAIL_ENABLED", default="true")
if ENVIRONMENT_DEBUG.lower() in ("f", "false"): MAIL_ENABLED = _mail_enabled.lower() in {"1", "t", "true"}
ENVIRONMENT_DEBUG = False
SECRET_KEY = os.environ.get("SECRET_KEY")
DEBUG = ENVIRONMENT_DEBUG
SECRET_KEY = os.environ.get("SECRET_KEY", default=None)
if not SECRET_KEY: if not SECRET_KEY:
raise ValueError("No secret key set for Flask application") raise ValueError("No SECRET_KEY set for Flask application")
Notice that any value besides an empty string will be interpreted as a boolean Notice that any value besides an empty string will be interpreted as a boolean
@ -486,6 +483,7 @@ ability to access the configuration when starting up. There are other methods
on the config object as well to load from individual files. For a complete on the config object as well to load from individual files. For a complete
reference, read the :class:`~flask.Config` class documentation. reference, read the :class:`~flask.Config` class documentation.
Configuration Best Practices Configuration Best Practices
---------------------------- ----------------------------