A beginner-to-intermediate guide to the Django web framework.
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design.
# Create virtual environment
python -m venv venv
# Activate environment
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
# Install Django
pip install django
# Verify installation
django-admin --version
django-admin startproject myproject
cd myproject
python manage.py runserver
Visit http://127.0.0.1:8000 to see the Django welcome page.
myproject/
│── manage.py
│── myproject/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── asgi.py
│ └── wsgi.py
python manage.py startapp blog
Add the app to INSTALLED_APPS in settings.py.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
from django.contrib import admin
from .models import Post
admin.site.register(Post)
Access admin panel at /admin.
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django!")
from django.urls import path
from .views import home
urlpatterns = [
path('', home, name='home'),
]
<!-- templates/home.html -->
<h1>Welcome to Django</h1>
<p>This is a template</p>
from django import forms
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'content']
from django.contrib.auth.decorators import login_required
login_required
def dashboard(request):
return render(request, "dashboard.html")
# Create
Post.objects.create(title="Post 1", content="Hello")
# Read
Post.objects.all()
# Update
post = Post.objects.get(id=1)
post.title = "Updated"
post.save()
# Delete
post.delete()
DEBUG = False