.. _application-single-container: Application example (single container) ====================================== .. meta:: :keywords: Python,Dependency Injection,Inversion of Control,Container,Example,Application, Framework,AWS,boto3,client :description: This example shows how you can create an application using a single declarative container. We build an example Python micro application following the dependency injection principle. It consists from several services with a domain logic that have dependencies on database & AWS S3. This example shows how you can create an application using a single declarative container. Using a single declarative container is a good choice for small or moderate size application. For building a large application refer to :ref:`application-multiple-containers`. We build an example micro application following the dependency injection principle. It consists of several services with a domain logic. The services have dependencies on database & AWS S3. .. image:: images/application.png :width: 100% :align: center Start from the scratch or jump to the section: .. contents:: :local: :backlinks: none You can find the source code and instructions for running on the `Github `_. Application structure --------------------- Application consists of an ``example`` package, several configuration files and a ``requirements.txt`` file. .. code-block:: bash ./ ├── example/ │ ├── __init__.py │ ├── __main__.py │ ├── containers.py │ └── services.py ├── config.ini ├── logging.ini └── requirements.txt Container --------- Listing of the ``example/containers.py``: .. literalinclude:: ../../examples/miniapps/application-single-container/example/containers.py :language: python Main module ----------- Listing of the ``example/__main__.py``: .. literalinclude:: ../../examples/miniapps/application-single-container/example/__main__.py :language: python Services -------- Listing of the ``example/services.py``: .. literalinclude:: ../../examples/miniapps/application-single-container/example/services.py :language: python Configuration ------------- Listing of the ``config.ini``: .. literalinclude:: ../../examples/miniapps/application-single-container/config.ini :language: ini Listing of the ``logging.ini``: .. literalinclude:: ../../examples/miniapps/application-single-container/logging.ini :language: ini Run the application ------------------- You can find the source code and instructions for running on the `Github `_. .. include:: ../sponsor.rst .. disqus::