No Shortcuts Guide to Django RESTful APIs with Docker
What you'll learn
- You will learn how to use Docker with Celery, Redis, Flower with Django REST Framework
- You will learn how to use Reverse Proxies with NGINX and NGINX Proxy Manager
- You will learn how Secure an API with HTTPS with SSL Certificates from Letsencrypt
- You will be Introduced to API testing with Pytest using factories and fixtures
- You will learn how manage multiple Docker containers with Portainer
- You will learn how to use shell scripts to automate and monitor processes
- You will learn about UUID's (advantages and disadvantages) and how pseudo primary keys solve this.
- You will learn how to implement Asynchronous tasks with Celery and Redis
- You will learn how to Serve static and media files with Nginx and Whitenoise.
- You will learn how implement Asynchronous tasks monitoring with Flower
- You will learn how to work with Postgres within a Docker container, including how to perform backups using shell scripts.
- You will learn how to setup an Ubuntu server, running Django over a Domain name.
- You will learn how to use makefiles to make working with Docker easier.
- Python Test coverage using coverage
- Logging in Django
- Token Based Authentication
- Working with emails using Mailhog in development and Mailgun in production.
Requirements
- This course is NOT for absolute beginners.
- This course is targeted at Python Developers with at least 1 year of web development experience or more
- It's preferable that you use a computer with any LINUX based operating system or MacOS. If not possible, a windows machine will also work, but I have not tested the course material with a windows machine
- You should be familiar with the basic concepts surrounding shell scripts, Docker,API's and Django.
Description
Hi, welcome to this course on building a production ready, detailed Django REST API, running on a web server powered by NGINX, on a custom domain name and served securely over HTTPS with SSL Certificates from Letsencrypt.
This course is NOT for absolute beginners.
We shall achieve our goal by leveraging tools such as Docker, Celery, Redis, Flower, Nginx, Nginx Proxy manager, Portainer, shell scripts and more.
This course is targeted at those with AT LEAST 6 months of web development experience, but more is better. Before beginning, you should have some familiarity with the following concepts, in as much as I will try to explain everything.
The concepts we shall cover include:
Docker and running multiple containers
2 Securing a Django REST API with HTTPS using SSL Certificates
REST APIs with Django and Django Rest Framework
Class Based Views.
Shell Scripting.
Asynchronous tasks with Celery and Redis
Asynchronous tasks monitoring with Flower
Introduction to API testing with Pytest using factories and fixtures.
Token based authentication
Working with email in development with Mailhog and in production with Mailgun
Python Test coverage
Serving static and media files with NGINX and whitenoise
Makefiles and how they make working with Docker easier.
All this shall be covered step by step, so that you can leverage the skills you learn in this course to build even bigger and better applications at scale.
My Hope is that you shall gain immense value from this.
Who this course is for:
- Intermediate Python Developers curious about how to use Django REST Framework with shell scripts, Docker, Docker, Celery, Redis, Rabbitmq, Flower and Nginx. You will learn everything you need to know to combine these technologies in a production build by leveraging other tools such as Portainer, NGINX Proxy manager among others
- Intermediate Python Developers with at least 1 year of experience, more is better
Instructor
Hi, I am Alpha Ogilo, a self taught FullStack Software engineer with a passion for mentorship and teaching of computer programming principles. I have a liking for Python and JavaScript and its frameworks. Docker is also one of my favourite tools. In the future plan to learn many more technologies/tools and share what I have learnt.
I currently work Full-time as a Senior Software Engineering Manager and in my free time also started creating youtube tutorials