python-dependency-injector/examples/miniapps/django/README.rst

110 lines
3.1 KiB
ReStructuredText
Raw Normal View History

2020-10-05 06:25:21 +03:00
Django + Dependency Injector Example
====================================
2020-10-02 01:01:10 +03:00
Application ``githubnavigator`` is a `Django <https://www.djangoproject.com/>`_ +
`Dependency Injector <http://python-dependency-injector.ets-labs.org/>`_ example application.
Run
---
Create virtual environment:
.. code-block:: bash
virtualenv venv
. venv/bin/activate
Install requirements:
.. code-block:: bash
pip install -r requirements.txt
2020-10-05 06:25:21 +03:00
Run migrations:
.. code-block:: bash
python manage.py migrate
2020-10-02 01:01:10 +03:00
To run the application do:
.. code-block:: bash
2020-10-05 06:25:21 +03:00
python manage.py runserver
2020-10-02 01:01:10 +03:00
The output should be something like:
.. code-block::
2020-10-05 06:25:21 +03:00
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
October 05, 2020 - 03:17:05
Django version 3.1.2, using settings 'githubnavigator.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
After that visit http://127.0.0.1:8000/ in your browser.
2020-10-02 01:01:10 +03:00
.. note::
2020-10-05 06:25:21 +03:00
Github has a rate limit. When the rate limit is exceed you will see an exception
``github.GithubException.RateLimitExceededException``. For unauthenticated requests, the rate
limit allows for up to 60 requests per hour. To extend the limit to 5000 requests per hour you
need to set personal access token.
It's easy:
- Follow this `guide <https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token>`_ to create a token.
- Set a token to the environment variable:
.. code-block:: bash
export GITHUB_TOKEN=<your token>
- Restart the app with ``python manage.py runserver``
`Read more on Github rate limit <https://developer.github.com/v3/#rate-limiting>`_
2020-10-02 01:01:10 +03:00
Test
----
This application comes with the unit tests.
To run the tests do:
.. code-block:: bash
2020-10-05 06:25:21 +03:00
coverage run --source='.' manage.py test && coverage report
2020-10-02 01:01:10 +03:00
The output should be something like:
.. code-block::
2020-10-05 06:25:21 +03:00
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..
----------------------------------------------------------------------
Ran 2 tests in 0.037s
2020-10-02 01:01:10 +03:00
2020-10-05 06:25:21 +03:00
OK
Destroying test database for alias 'default'...
2020-10-02 01:01:10 +03:00
Name Stmts Miss Cover
---------------------------------------------------
2020-10-05 06:25:21 +03:00
githubnavigator/__init__.py 4 0 100%
githubnavigator/asgi.py 4 4 0%
githubnavigator/containers.py 7 0 100%
githubnavigator/services.py 14 0 100%
githubnavigator/settings.py 23 0 100%
githubnavigator/urls.py 3 0 100%
githubnavigator/wsgi.py 4 4 0%
manage.py 12 2 83%
web/__init__.py 0 0 100%
web/apps.py 7 0 100%
web/tests.py 28 0 100%
web/urls.py 3 0 100%
web/views.py 11 0 100%
2020-10-02 01:01:10 +03:00
---------------------------------------------------
2020-10-05 06:25:21 +03:00
TOTAL 120 10 92%