Merge pull request #3118 from JBonser/master

Fix code snippet in config.rst for env vars Fixes #3117
This commit is contained in:
David Lord 2019-05-16 08:52:23 -07:00 committed by GitHub
commit 4091013ee1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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
---------------------------- ----------------------------