Django Project Setup: A Practical Guide for Indians

So, you've decided to build something with Django. Maybe your college project deadline is looming, or you're eyeing that ₹8-12 LPA backend developer role at Flipkart or Z

LB
UnboxCareer Team
Editorial · Free courses curator
September 15, 20256 min read
Django Project Setup: A Practical Guide for Indians

So, you've decided to build something with Django. Maybe your college project deadline is looming, or you're eyeing that ₹8-12 LPA backend developer role at Flipkart or Zomato. You know Python, you've heard Django is the go-to framework for robust web apps in India, but the setup feels like a maze. Between virtual environments, dependency conflicts, and deployment jargon, it's easy to get stuck before writing your first line of code. This guide cuts through the noise with a practical, step-by-step approach tailored for Indian developers, students, and job-seekers.

Why Django is a Smart Choice for Indian Developers

In the competitive Indian tech landscape, having a solid, in-demand framework on your resume is crucial. Django isn't just another tool; it's a full-stack powerhouse used by major Indian startups like Swiggy and Razorpay, and even by IT giants like Infosys and TCS for enterprise solutions. Its "batteries-included" philosophy means you get authentication, admin panels, and database ORM out of the box, letting you focus on building features, not boilerplate code. For students, this translates to faster project completion. For job-seekers, it demonstrates you can work with scalable, maintainable code—a key ask in interviews.

  • High Demand: Check any job portal (Naukri, Indeed, LinkedIn) for Python backend roles, and Django is almost always a requirement.
  • Rapid Development: Perfect for hackathons or building a MVP for your startup idea.
  • Strong Community: A vast community means plenty of tutorials from creators like CodeWithHarry and Apna College, and solutions to common problems on Stack Overflow.

Prerequisites: What You Need Before You Start

Before diving into the terminal, ensure your foundation is solid. You don't need to be an expert, but a working knowledge of core concepts will make everything click.

  • Python 3.8+: This is non-negotiable. Django is a Python framework.
  • Basic Python Syntax: Understanding functions, loops, lists, dictionaries, and classes (Object-Oriented Programming) is essential.
  • Command Line Comfort: You should be able to navigate directories (cd), list files (ls or dir), and run Python scripts from your terminal or command prompt.
  • A Code Editor: VS Code is a popular, free choice with excellent Python and Django extensions. PyCharm Community Edition is another great option.

If you need to brush up on Python, fantastic free resources are available. freeCodeCamp has an extensive Python curriculum, and NPTEL offers structured courses like "Programming, Data Structures And Algorithms Using Python."

Step-by-Step: Your First Django Project Setup

Let's build the classic project: a simple blog. Follow these steps precisely to avoid the common "it works on my machine" problem.

1. Setting Up Your Development Environment

First, organize your workspace and isolate your project's dependencies.

  1. Create a Project Directory: Open your terminal and make a clean folder for all your Django work.
    mkdir my_django_projects
    cd my_django_projects
    
  2. Create a Virtual Environment: This is critical. It keeps the libraries for this project separate from your system Python and other projects.
    python -m venv venv
    
  3. Activate the Virtual Environment:
    • Windows: venv\Scripts\activate
    • macOS/Linux: source venv/bin/activate You'll know it's active when you see (venv) at the start of your command line prompt.

2. Installing Django and Starting a Project

With your environment active, you can now install Django.

pip install django

Verify the installation with django-admin --version. Now, create your project. A "project" is the overall website container.

django-admin startproject myblog
cd myblog

Inside myblog, you'll see manage.py (your project's command center) and another myblog folder (the project's settings).

3. Creating Your First App and Running the Server

In Django, a "project" is made up of multiple "apps" (e.g., a blog app, a user authentication app). Let's create one.

python manage.py startapp blog

Now, you must tell the project about this new app. Open myblog/settings.py, find the INSTALLED_APPS list, and add 'blog', to it.

You're ready for the magic moment. Run the development server:

python manage.py runserver

Open your browser and go to http://127.0.0.1:8000/. You should see the Django rocket ship! Congratulations, your setup is complete.

Understanding the Django Project Structure

Knowing what each file does will prevent confusion. Here’s a breakdown of the key files and folders you've created:

  • manage.py: A command-line utility to interact with your project (run server, create apps, make migrations).
  • myblog/ (Project folder):
    • __init__.py: Tells Python this directory is a package.
    • settings.py: The heart of your project—database config, installed apps, middleware, etc.
    • urls.py: The URL declarations; a "table of contents" for your site.
    • wsgi.py & asgi.py: Entry points for WSGI/ASGI servers (important for deployment).
  • blog/ (Your app folder):
    • migrations/: Stores database schema changes over time.
    • admin.py: Register your models here to manage them in Django's powerful admin interface.
    • apps.py: Configuration for the app itself.
    • models.py: Define your database structures here (e.g., a Post model with title, content, date).
    • tests.py: Write tests for your app.
    • views.py: Contains the logic that processes a web request and returns a response.

Common Setup Pitfalls & How to Avoid Them

Every Indian developer faces these hurdles. Here’s how to sidestep them.

  • "ModuleNotFoundError: No module named 'django'": You installed Django globally, but your virtual environment is not activated. Always check for (venv) in your terminal.
  • Database Migration Errors: After creating or changing a model in models.py, you must create and apply migrations.
    python manage.py makemigrations
    python manage.py migrate
    
  • Port Already in Use: If runserver fails, another process might be using port 8000. Use python manage.py runserver 8080 to run on a different port.
  • Static Files Not Loading (in production): The development server handles this, but for deployment (e.g., on PythonAnywhere or an AWS EC2 instance), you must configure STATIC_ROOT and STATIC_URL in settings.py and run collectstatic.

Building a Simple Feature: Your First View

Let's make a real webpage to cement your understanding. In your blog/views.py:

from django.http import HttpResponse

def home(request):
    return HttpResponse("<h1>Welcome to My Blog!</h1><p>Built with Django.</p>")

Now, connect this view to a URL. In your blog app, create a file called urls.py. Inside it:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

Finally, include this app's URLs in the project's myblog/urls.py:

from django.contrib import admin
from django.urls import path, include # Import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')), # Include the app's URLs
]

Go back to http://127.0.0.1:8000/. You should now see your custom welcome message instead of the rocket ship!

Next Steps

You've successfully set up a Django development environment and created a basic working application. This is a powerful foundation. To turn this into a portfolio-worthy project or skill for your next interview, you need to keep building. Learn how to use Django's Object-Relational Mapper (ORM) to connect your models.py to a database like PostgreSQL. Explore Django's built-in admin panel to manage your content effortlessly. Finally, understand how to use templates to create dynamic HTML pages.

Ready to dive deeper? Browse our curated list of free Django and Python courses from platforms like Coursera (with Financial Aid) and edX. To see how these skills translate to jobs, explore our guides on building a developer portfolio that gets noticed by recruiters at companies like Accenture and Freshworks. For a structured learning path, check out our roadmap for becoming a backend developer in India.

Keep learning on UnboxCareer

Explore free courses, certificates, and career roadmaps curated for Indian students.