
Build Django 5 apps on AWS by integrating Amazon RDS, Elastic Beanstalk, Route 53, and Amazon Certificate Manager; deploy a social media project with S3 media, login, posts, and comments.
Prepare by understanding Python, web development basics, and Django fundamentals. Install Python 3.11 and Django 5, set up PyCharm Community Edition, and create an AWS account for integration.
Explore Django as a Python web framework with reusable components, an ORM, a powerful admin interface, built-in security, and an open source community with third party packages.
Install Django and create your first project using Python 3.11 and a virtual environment. Learn to integrate Django with Amazon RDS and Elastic Beanstalk and run the development server.
Watch the video and leave your rating and experience for the course using the rating button. Save and continue to submit and store your review after you rate.
Learn the django project structure and how key components, including manage.py, settings.py, urls.py, wsgi.py, and asg.py, work together, with sqlite3 as the default database and common apps and middlewares.
Create your first Django app to learn how Django apps serve as modular building blocks, with self-contained units handling models, views, admin, migrations, tests, and installed apps in settings.
Explore the Django admin interface, manage users and groups, perform migrations, create a super user, and customize site administration through the admin dashboard.
Explore Django models and the ORM to design a database schema with Python classes, fields, and relationships, including a one-to-one link to the user and profile fields with migrations.
Register the user profile model with the Django admin via admin.site.register. Manage user profiles in the admin panel, including uploading a profile picture, with one profile per user.
Explore how Django templates separate presentation from logic using tags, filters, and template variables. Reuse via inheritance and includes, ensure HTML escaping, and manage static and media files.
Learn how to implement django template inheritance with a base.html and blocks for title and body to create a consistent, reusable layout.
Build a Django registration form by extending the built-in UserCreationForm, adding bio and profile_picture, and configuring meta fields including username, password1, password2, bio, and profile_picture.
Build a Django 5.0 registration view that processes post data with a registration form, saves the user, logs them in, and redirects to home, with template rendering and CSRF handling.
Learn to automatically create a user profile during registration by overriding the user creation form's save method, assigning bio and profile picture to the related profile.
Design a bootstrap-styled registration form using a container, card layout, and centered row, adding fields for username, password, bio, and profile picture with a csrf token and submit button.
Implement and display form validation errors in a Django registration page, showing Bootstrap alert messages when passwords mismatch or fields are invalid, and render form.errors in the template.
Implement a Django login view that processes the authentication form on post, validates credentials, logs in the user, and redirects to home, while rendering Login.html with the form.
Builds Django 5.0 login page by creating login.html from the register template, using CSRF token, rendering the form, and wiring the login view and urls.py for redirection to home.
Learn to create a Bootstrap navbar in Django by building navbar.html, include it in base.html, and configure home, register, login, and a profile dropdown with update and a search form.
Create a logout view, import Django's logout, and redirect to the login page; add a navbar logout link and verify by logging in and out.
Define a Django view function for the profile that fetches the user and their profile with get_object_or_404, builds a context with the profile, and renders profile.html.
Create a Django profile template that extends the base layout and builds a card to display the username, bio, and an optional profile picture from the profile context.
Create a profile update form in Django using a model form, including profile_picture and bio fields, and customize the init method to apply bootstrap classes like form-control and row styling.
Create an update_profile view that processes post data with ProfileUpdateForm, renders update_profile.html with a prefilled form on get, and redirects to the user's profile page by username.
Implement a password update in Django 5.0 using the built-in password change form. Update the user session with update_session_auth_hash and render update_password.html after submission.
Build and relate post and like models in Django, using foreign keys for many-to-one relationships and a many-to-many like system, with media fields and admin registration.
Build user posts in Django by creating a post form for content, video, and image, using model form vs form, handling submissions with files, assigning user, saving, and redirecting home.
Define a Django follow model with follower and following foreign keys to user, include created_at, enforce unique pairs, run migrations, and register the model in admin.
Create a Django follow toggle view that uses get_object_or_404 to fetch the target user, get_or_create to manage the follower relationship, and redirects to the target's profile.
Create a Django template filter to check follower relationships. Register the filter in a template tags module, using the follow model and exists() to determine if a user follows another.
Demonstrates adding follow and unfollow buttons in a Django profile page, using custom filters, forms with csrf tokens, and conditional logic to manage follow state.
Build a dynamic navbar that shows login and register for guests and reveals home, username, profile, and logout for authenticated users. Use conditional rendering with user.is_authenticated.
Show posts from the current user and users they follow on the home page by querying followed users, filtering posts with Q, and rendering them in index.html.
Design post cards by replacing the post container with a card layout, fetch posts from the database, display username and content, and show the creation date.
Implement the add post feature with bootstrap forms in index.html, replacing the Django forms and create post HTML, and note Django forms offer server-side validation and CSRF protection.
Add like and comment buttons to each post in the index.html, using btn btn primary and btn-sm classes, placed at the bottom while preserving existing posting functionality.
Implement like functionality using a post id based view that retrieves posts, uses get or create for likes, toggles like and unlike, and updates the like count with a button.
Create a Django comment model linked to post and user with content and created_at, cascade deletions, related name 'comments', string representation, order by created_at descending, and admin registration.
Implement a Django add_comment view that fetches the post by id, handles POST data to create a comment with the post and user, and redirects home.
Implement a dynamic comment UI by wiring a database toggle, a post-id collapse, a comment count badge, and a posting form with a text area, input group, and post button.
Resolve the localhost error anonymous object has no attribute following by setting the login page as the default home page. Demonstrates login, register, and viewing comments on the social network.
Create the edit post html template, extend the base, and build a bootstrap form for content and image; wire the edit post url and enable edit/delete buttons with user checks.
Extend the posting feature by adding image and video posts, update the index.html form to include image and video inputs, handle files in views.py, and use multipart form data.
Shows how to display post images and videos on the home page by conditionally rendering image sources and video players, with image max width 20% and height 200px, with controls.
Implement delete post functionality in a Django app by fetching the post, ensuring the user is authenticated, calling post.delete(), and redirecting to home, with updates to urls.py and index.html.
Update the comment section to display each user's profile picture next to their username, using a flex layout, rounded image, and a 50-pixel max width for clear alignment.
Implement a Django search feature that retrieves a query from get parameters, filters users by username containing the query, and renders results in search.html via a navbar search form.
Implement the login required decorator to restrict access for non-authenticated users and redirect them to the login page, safeguarding home, search, profile, and post actions.
Define a django notification model linked to a user and a post, with an action field and a read flag, using cascade deletes, migrations, and admin registration.
Learn how to implement Django signals to auto-create notifications when likes or comments occur, using post_save receivers, the @receiver decorator, and registering signals in apps.py.
Implement a Django 5.0 notification view that adds a notification type field, runs migrations, updates urls, marks relevant notifications as read, and renders post_detail.html with the post and its notifications.
Implement a custom notification filter and integrate a navbar badge in a Django app, showing unread counts, read/unread status, and a dropdown with post links for authenticated users.
Complete the notification system by displaying post titles and content in notification details, and validate read/unread statuses, likes, and comments across user logins.
Explore manual polling versus ajax notifications, showing how asynchronous ajax updates deliver real-time notifications and refresh the user interface without full page reloads.
Implement two Django view functions to fetch unread notifications and mark them as read, handling authentication, rendering ajax-ready html, and returning json with counts and the post url.
Create the notification html in Django by adding the notifications_ajax.html template. Wire up urls for fetch notifications and mark notification as read, and render each notification as a div.
Add a notification dropdown to the navbar using bootstrap. Show an unread notification badge for authenticated users, display the notification list, and prompt login when not authenticated.
Learn to implement ajax based notification handling in a Django app using jQuery: fetch notifications, render updates, and mark them as read with csrf protection, including periodic refresh.
Add style to the notification items and read notifications using styles and classes, then refresh to verify user interactions such as likes and comments.
Design the post details page by building a styled container, header with title and author/date, body content, and sections for likes and comments with user names.
Explore Amazon Web Services as a comprehensive cloud computing platform offering on-demand resources, scalability, global reach, security, and services like RDS, DynamoDB, S3, EBS, VPC, IAM, and Shield.
Explore AWS global infrastructure, including data centers, regions, availability zones, edge locations, and CloudFront and Route 53, enabling low latency and high availability for content delivery.
Create an AWS account and start with the 12-month free tier to explore services like EC2, S3, and RDS, then sign in to the AWS Management Console using root credentials.
Explore how Amazon RDS simplifies deploying and scaling relational databases for Django apps, with automated backups, multi-AZ high availability, read replicas, and security features.
Explore Amazon RDS components, including DB instances, DB engines, DB instance classes, storage, and VPC. Learn how managed backups, software patching, automatic failure detection, and recovery support database operations.
Create a MySQL DB instance in AWS RDS using standard create, select the MySQL engine, apply free tier settings, and configure security group and subnet for public access.
Learn to connect MySQL Workbench to an RDS MySQL instance using the endpoint, port, and credentials, then create a Django database and a person table with sample data.
Configure django to connect to an RDS mysql database by updating settings.py, using the mysql engine and host endpoint with port 3307, then run migrations after installing the mysql client.
Register new users and manage profiles in a Django project connected to an RDS MySQL database. Create posts, upload profile pictures, follow users, like posts, and receive notifications.
Explore amazon s3 as a scalable, durable object storage service for django apps, covering buckets, object storage, versioning, security with iam, lifecycle rules, data transfer, analytics, and static website hosting.
Create your first Amazon S3 bucket while mastering bucket naming, durability, region, objects, access control with bucket policies and IAM, encryption, and block public access.
Explore Amazon S3 objects as the core storage units in a bucket, with a key, data, and metadata, and understand uploading along with properties like storage class and server-side encryption.
Discover Boto3, the AWS SDK for Python, and see how its resource and client interfaces enable seamless integration of Amazon S3 with Django via Django storages.
Explore how iam enables identity and access management on aws by defining permissions and policies with least privilege, covering users, groups, roles, mfa, and access methods.
Learn how to create and manage IAM users, assign credentials and permissions, apply policies (managed and inline), enforce least privilege and MFA, and grant console or programmatic access.
Set up Django to store media in Amazon S3 by supplying AWS keys, configure the boto3 storage backend, and update models to upload images and videos with date-based paths.
Define a bucket policy to grant get object access on the S3 bucket, enabling images and videos uploaded via django to appear on the homepage.
Welcome to Django 5.0 with Amazon RDS, Elastic Beanstalk, Route53 & ACM Course and unlock the full potential of Django 5.0 by mastering the art of deploying web applications on the robust Amazon Web Services (AWS) cloud infrastructure. In this comprehensive course, we are going to dive deep into the Django development, and easily integrating with AWS services such as Amazon RDS, Elastic Beanstalk, Route 53, and Amazon Certificate Manager (ACM).
Key Points in This Course
Hands-On Deployment Techniques: Gain practical, hands-on experience in deploying Django applications, ensuring they run smoothly and efficiently on AWS.
Database Management with Amazon RDS: Learn to leverage the power of Amazon RDS to set up and manage scalable, high-performance relational databases easily integrated with your Django projects.
Elastic Beanstalk Deployment Mastery: Master the deployment process using AWS Elastic Beanstalk, enabling effortless scaling, monitoring, and management of your Django applications.
Custom Domains with Route 53: Explore the world of custom domains by configuring and managing them using Amazon Route 53.
SSL/TLS Security Implementation: Enhance the security of your Django applications by implementing SSL/TLS encryption with Amazon Certificate Manager (ACM).
Whether you're a Django enthusiast looking to advance your skills or an IT professional seeking practical AWS deployment expertise, this course provides a comprehensive toolkit for success. Join us on a journey to become a Django 5.0 and AWS deployment expert, equipped to navigate the challenges of real-world application deployment on the cloud.