Developing Django Application using AWS
Run, build, test and deploy Django Application in PyCharm using NICE DCV.
Interested in running your entire application in AWS and feel like working in the local machine, then you are at the right place. This tutorial helps to understand how we can easily run, test, build and finally deploy our application through PyCharm using NICE DCV, which is a high-performance remote display protocol that provides customers with a secure way to deliver remote desktops and application streaming from any cloud or data center to any device.
This is just the beginning, and we are going to explore a lot of cool stuffs.
- Working with AWS RDS
- Integrating Sentry
- Securing APIs with JSON Web Tokens (JWT)
- Playing with BDD Tests & lots more to come.
Note: We'll be using PyCharm Professional Edition for all the steps in this tutorial.
Introduction
Introducing Django, a high-level python web framework.
Setting up VPC and RDS in AWS
Setup VPC, Subnets, Route Tables, Internet Gateway and Relational Database.
Setup Ubuntu Desktop in AWS using NICE DCV
Configure security group and launch a new instance.
Creating a new Django Project in PyCharm
Create a virtual environment and install Python dependencies.
Setup AWS RDS in PyCharm
Connect Postgres with our Django Application.
Exploring Project Structure & Creating Django App
Create a new app, define models, and explore the project's structure.
Implementing Rest APIs
Writing CRUD (Create, Read, Update, Delete) in Django Rest Framework.
Secure REST APIs with JWT
Using Simple JWT authentication plugin for the Django REST Framework.
Integrating Sentry Application Monitoring
Track errors & monitor performance in all major languages & frameworks with Sentry.
Unit Tests
Writing and running unit tests in Django.
Behavior-Driven Development(BDD) Testing
Writing and running BDD tests using Behave.
Exploring Django with Docker
Building and running Django Containers through Docker.
GitHub Actions
Deploy Docker Image to AWS ECR through GitHub Actions.
Cleanup
Cleaning up resources from AWS.