========================
PasteDeploy and Buildout
========================
If you're using `Buildout `_, you may want to use
the `zc.recipe.egg:scripts `_
recipe to preppend the initialisation code to your scripts. It'd be a powerful
tool when your application may be run in different modes (e.g., production,
development). For example, you can use it like this:
.. code-block:: ini
[buildout]
parts = scripts
# ...
[scripts]
recipe = zc.recipe.egg:scripts
eggs =
ipython
YOUR_DISTRIBUTION
sphinx
initialization = from paste.deploy import loadapp; loadapp("${vars:config_uri}")
# "manage" is defined as a distutil entry point in YOUR_DISTRIBUTION
scripts =
ipython
manage
sphinx-build
[vars]
config_uri = config:${buildout:directory}/config.ini
# ...
Accessing Django Settings from Buildout Parts
=============================================
In order to avoid duplicating configuration, this library provides a Buildout
recipe (named "django-settings") that makes your Django settings available
to other Buildout parts by loading all the Django settings into the part using
the recipe.
You would use the recipe as follows:
.. code-block:: ini
# (...)
[vars]
recipe = django-pastedeploy-settings[buildout-options]:django-settings
config_uri = config:${buildout:directory}/config.ini
factory_distribution = YOUR_DISTRIBUTION
# (...)
.. note::
This recipe requires this library to with installed with the *extra*
dependency group named "buildout-options".
That will dynamically augment the ``vars`` part with all the Django settings,
so that you can refer to any of those settings by using the syntax
``${vars:DJANGO_SETTING_NAME}`` in other Buildout parts. For example:
.. code-block:: ini
# (...)
[generate_web_server_config_file]
recipe = recipe_to_generate_web_server_config_file
domain_name = ${vars:YOUR_SITE_DOMAIN_NAME}
# (...)