A Yeoman generator for a Django REST API that makes you efficient, includes features you need in a typical modern web app, yet keeps things simple.
Note: the project is still considered to be in alpha until I get a chance to test it on more apps!
The philosophy is to include features useful across projects that are tedious to set up from scratch. So far we've got
-
quick to launch π β start a new project and deploy it to Heroku in 3 commands:
yo django-rest ./scripts/devsetup.sh ./scripts/deploy.sh
-
productive β‘οΈ β start the Django & DB dev servers easily
./scripts/dev.sh
-
sane logging π β defaults to fail nicely
-
modern JS π¦ β serve static files on / using Whitenoise for nice single-page apps using React / Angular2 / Vue and the like
-
12-factor config π€ β environment variable configuration
- define a variable in .env for dev e.g.
REDIS_URL=redis://localhost:6379/0
- use it in settings.py, e.g.
CELERY_RESULT_BACKEND = env('REDIS_URL')
- set variables on the prod server (just worksβ’ with Redis on Heroku)
- define a variable in .env for dev e.g.
-
batteries included π
- Celery with a Redis backend β cause you'll need an async task queue
- Backblaze B2 media file storage backend (optional)
-
familiar πΆ β check out the rough project file layout, it's much like
django-admin startproject myproject
would set it up (only repeats the project name twice, i.e. ~/code/myproject/myproject/settigns.py)
To begin, your computer first needs node.js. Once you have that, you need Yeoman pre-installed. Yeoman lives in the npm package repository. You only have to ask for him once, then he packs up and moves into your hard drive.
npm install -g yo
Then, we need the django-rest generator, i.e. plug-in. You install generator-django-rest from npm.
npm install -g generator-django-rest
Finally, for every new project you would initiate the generator in an empty folder.
mkdir myproject
cd myproject
yo django-rest
Now check HACKING.md for extra instructions.
MIT