cookiecutter-drf
![Code style: black](https://camo.githubusercontent.com/d91ed7ac7abbd5a6102cbe988dd8e9ac21bde0a73d97be7603b891ad08ce3479/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d626c61636b2d3030303030302e737667)
Getting Started
- Install cookiecutter.
- Generate your project from cookiecutter-drf:
cookiecutter gh:flexy/cookiecutter-drf
Features
Architecture:
- Containerized with Docker
- Python 3.7
- Django 2.2
- Web server: Gunicorn and Uvicorn
- Databases: PostgreSQL, Redis
- Dependency and python version management (Pipenv)
- Tasks: Celery and Celery Beat
Utilities:
- Better settings (django-environ, django-configurations)
- Better logging (Sentry, logutils)
- Common model fields and mixins (django-model-utils)
API:
- Django Rest Framework
- Swagger UI (drf-yasg)
- Redoc UI (drf-yasg)
- OpenAPI schema (drf-yasg)
- QuerySet filtering (django-filter)
Authentication:
- Custom user model
- Authentication endpoints (djoser)
- Social authentication and OAuth2 (social-auth-app-django, django-oauth-toolkit, django-rest-framework-social-oauth2)
Testing and Code Quality:
- pytest with pytest-django
- Easy API testing (django-rest-assured)
- Factories (factory-boy)
- django-debug-toolbar available locally
- Code quality (Flake8, Black)
- Code coverage (pytest-cov)
- CI integration (Travis CI)
Continuous Deployment:
Upcoming Features
- Email verification
- Better permissions
Development
Getting started
- Install dependencies:
- Launch the project environment:
- Initialize pre-commit:
Generate the project
cookiecutter . --no-input --overwrite-if-exists