About this repository ===================== This project was created from the `cookiecutter-django-jw`_ template, using a process like this: .. code-block:: sh $ cd ~/src/ $ cookiecutter https://github.com/jwhitlock/cookiecutter-django-jw.git config_path is ~/.cookiecutterrc full_name (default is "John Whitlock")? John Whitlock email (default is "john@factorialfive.com")? john@factorialfive.com github_username (default is "jwhitlock")? jwhitlock repo_name (default is "boilerplate")? drf-cached-instances project_name (default is "Python Boilerplate")? Cached Instances for Django REST Framework app_name (default is "boilerplate")? drf_cached_instances site_name (default is "bpsite")? sample_site project_short_description (default is "Python Boilerplate contains all the boilerplate you need to create a Python package.")? Cached instances for Django REST Framework release_date (default is "2015-01-11")? 2014-11-05 year (default is "2014")? 2014 version (default is "0.1.0")? 0.1.0 $ cd drf-cached-instances $ git init Initialized empty Git repository in ~/src/drf-cached-instances/.git/ $ git add . $ git commit -am "Initial commit" [master (root-commit) 75bc198] Initial commit 61 files changed, 21366 insertions(+) create mode 100644 .coveragerc create mode 100644 .editorconfig create mode 100644 .gitignore ... create mode 100644 setup.cfg create mode 100755 setup.py create mode 100644 tox.ini $ mkvirtualenv drf-cached-instances New python executable in drf-cached-instances/bin/python2.7 Also creating executable in drf-cached-instances/bin/python Installing setuptools, pip...done. $ pip install -r requirements.txt (development requirements installed) $ ./manage.py migrate .. _`cookiecutter-django-jw`: https://github.com/jwhitlock/cookiecutter-django-jw.git Development Features -------------------- After a basic install, you can run: * ``make qa`` - runs flake8 for PEP8 and PEP257 compliance checking. Runs coverage to confirm 100% code coverage for the app. * ``make install_jslint`` - Install node and jslint in the virtualenv. Future runs of ``make qa`` will include jslint checking of project javascript. * ``make qa-all`` - All the checks of ``make qa``, plus building documentation, building and checking packaging, and running tox against a range of Python Django versions. * ``make`` - See other make targets. * ``./manage.py test`` - Run tests with the nose test runner * ``./manage.py test --failed --ipdb --ipdb-failures`` - Run tests. Keep track of which tests failed, and only run those in the future. When an issue appears, debug in an interactive ipdb session. * ``DEBUG=1 ./manage.py runserver_plus`` - Run in debug mode. Includes Django Debug Toolbar for peeking behind the scenes, and interactive tracebacks on failures. Deployment Features ------------------- sample_site/settings.py is built using the 12factor_ principle of getting configuration from the environment. The default configuration is release mode. You'll need to set environment variables to match your desired configuration. In development, some ways to set the environment are: * On the command line: ``DEBUG=1 ./manage.py runserver`` * Export settings: ``export DEBUG=1; ./manage.py runserver`` * As part of virtualenv initialization: ``vim $VIRTUAL_ENV/bin/postactivate`` for the ``export DEBUG=1`` set statements, and ``vim $VIRTUAL_ENV/bin/predeactivate`` for the ``export DEBUG=`` clear statements. Heroku deployment is included. This can be done with the 'Deploy to Heroku' button, or manually: .. code-block:: sh $ heroku apps:create drf-cached-instances Then config for development: .. code-block:: sh $ heroku config:set EXTRA_INSTALLED_APPS=gunicorn STATIC_ROOT=static DEBUG=1 Or for production: .. code-block:: sh $ heroku config:set EXTRA_INSTALLED_APPS=gunicorn STATIC_ROOT=static DEBUG=0 ALLOWED_HOSTS=drf-cached-instances.herokuapp.com SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTOCOL,https When you've got the app configured, deploy your code to run it: .. code-block:: sh $ git push heroku master $ heroku open .. _12factor: http://12factor.net