Welcome to Django for Everyone! 🎉 This repository is your one-stop resource for learning Django, whether you're a beginner looking to build your first web app or a professional seeking to master advanced features. Let’s dive into Django with two learning paths designed to suit your style and goals! 🌟
We’ve split the content into two main learning paths. Choose the one that best suits your needs:
If you love learning by doing, this is the path for you! In the Projects Directory, you'll find different project-based tracks:
- Best for: Those just starting with Django.
- What you'll build: A complete Blog Application from scratch.
- Why it's awesome: You’ll learn the fundamentals of Django, including how to set up your project, manage views, templates, and user authentication, and deploy your app on Heroku.
- Covered Topics:
- Setting up a Django environment.
- Creating views, templates, and forms.
- Handling user authentication.
- Deploying your app to Heroku.
- Best for: Developers familiar with Django who want to build more advanced applications.
- What you'll build: A Django-powered store with Docker and PostgreSQL.
- Why it's awesome: This project covers advanced Django features like user permissions, Docker integration, and deployment on Heroku.
- Covered Topics:
- Setting up Django with Docker and PostgreSQL.
- Advanced user registration and authentication.
- Adding search and permissions functionalities.
- Deploying a production-ready app on Heroku.
-
Best for: Developers looking to build RESTful APIs with Django.
-
What you'll build: A full-featured REST API using Django and Django REST Framework (DRF).
-
Why it's awesome: You'll learn how to create, read, update, and delete resources via APIs, work with viewsets, serializers, and handle complex queries through Django's ORM.
-
Covered Topics:
- Setting up Django REST Framework.
- Building API endpoints for your Django models.
- Using viewsets and routers for efficient URL routing.
- Creating serializers to handle the conversion between Django models and JSON.
- Implementing permissions and authentication using DRF's built-in features.
- Deploying your Django REST API on platforms like
Heroku
.
If you prefer learning one step at a time, mastering one concept at a time, follow our feature-by-feature path. Here, we deep dive into individual aspects of Django:
- What you'll learn: The very basics of setting up Django, including setting up your environment, creating views, templates, and handling static files.
- Covered Topics:
- Setting up your Django environment.
- Creating and mapping views with URLs.
- Working with templates and static files.
- Debugging in VS Code.
- What you'll learn: How to build efficient and scalable data models for your Django app.
- Covered Topics:
- Introduction to data models.
- Creating and organizing models in apps.
- Defining relationships (one-to-one, one-to-many, many-to-many).
- Handling circular relationships.
- What you'll learn: How to set up databases for Django, with a focus on MySQL and PostgreSQL.
- Covered Topics:
- Supported database engines.
- Creating migrations and customizing database schema.
- Running custom SQL.
- Generating dummy data for testing.
- What you'll learn: Master Django's powerful ORM (Object Relational Mapper) for querying databases efficiently.
- Covered Topics:
- Retrieving and filtering objects.
- Performing complex lookups using
Q
andF
objects. - Sorting, limiting, and selecting fields.
- Aggregating and analyzing data with ORM.
-
Project-Based Learning: If you want to learn Django by building real-world applications, head over to the Projects Directory. Start with Beginners if you're new to Django, or dive into Professionals if you're ready for more advanced challenges.
-
Feature-by-Feature Learning: If you prefer mastering one concept at a time, begin with Django Fundamentals and progress through to Django ORM.
-
Deploy and Test: Each project is designed to be deployable on Heroku. We provide step-by-step guides for deployment in each project’s directory.
-
Contribute: Found an issue or want to suggest improvements? Feel free to contribute! We welcome pull requests.
If you find this repository helpful, please give it a star ⭐! Your support helps keep this project going and encourages more content to be added. 🌟