Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vivify-ideas/python-django-drf-boilerplate
Django Boilerplate for starting fresh new DRF projects
https://github.com/vivify-ideas/python-django-drf-boilerplate
boilerplate django docker drf python swagger
Last synced: 5 days ago
JSON representation
Django Boilerplate for starting fresh new DRF projects
- Host: GitHub
- URL: https://github.com/vivify-ideas/python-django-drf-boilerplate
- Owner: Vivify-Ideas
- Created: 2019-09-10T07:42:55.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-01T11:27:51.000Z (11 months ago)
- Last Synced: 2025-01-24T03:38:58.089Z (12 days ago)
- Topics: boilerplate, django, docker, drf, python, swagger
- Language: Python
- Homepage:
- Size: 131 KB
- Stars: 167
- Watchers: 6
- Forks: 44
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Django Rest Framework boilerplate
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
This is boilerplate for starting fresh new DRF projects. It's built using [cookiecutter-django-rest](https://github.com/agconti/cookiecutter-django-rest).
## Highlights
- Modern Python development with Python 3.8+
- Bleeding edge Django 3.1+
- Fully dockerized, local development via docker-compose.
- PostgreSQL
- Full test coverage, continuous integration, and continuous deployment.
- Celery tasks### Features built-in
- JSON Web Token authentication using [Simple JWT](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/)
- Social (FB + G+) signup/sigin
- API Throttling enabled
- Password reset endpoints
- User model with profile picture field using Easy Thumbnails
- Files management (thumbnails generated automatically for images)
- Sentry setup
- Swagger API docs out-of-the-box
- Code formatter [black](https://black.readthedocs.io/en/stable/)
- Tests (with mocking and factories) with code-coverage support## API Docs
API documentation is automatically generated using Swagger. You can view documention by visiting this [link](http://localhost:8000/swagger).
## Prerequisites
If you are familiar with Docker, then you just need [Docker](https://docs.docker.com/docker-for-mac/install/). If you don't want to use Docker, then you just need Python3 and Postgres installed.
## Local Development with Docker
Start the dev server for local development:
```bash
cp .env.dist .env
docker-compose up
```Run a command inside the docker container:
```bash
docker-compose run --rm web [command]
```## Local Development without Docker
### Install
```bash
python3 -m venv env && source env/bin/activate # activate venv
cp .env.dist .env # create .env file and fill-in DB info
pip install -r requirements.txt # install py requirements
./manage.py migrate # run migrations
./manage.py collectstatic --noinput # collect static files
redis-server # run redis locally for celery
celery -A src.config worker --beat --loglevel=debug
--pidfile="./celerybeat.pid"
--scheduler django_celery_beat.schedulers:DatabaseScheduler # run celery beat and worker
```### Run dev server
This will run server on [http://localhost:8000](http://localhost:8000)
```bash
./manage.py runserver
```### Create superuser
If you want, you can create initial super-user with next commad:
```bash
./manage.py createsuperuser
```### Running Tests
To run all tests with code-coverate report, simple run:
```bash
./manage.py test
```You're now ready to ROCK! ✨ 💅 🛳