Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Overview of Django

Introduction

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It was designed to help developers take applications from concept to completion as quickly as possible.

Key Features of Django

Django comes with a variety of features that make web development easier and more efficient:

  • Object-Relational Mapping (ORM): Django provides a powerful ORM that allows developers to interact with the database using Python code instead of SQL.
  • Admin Interface: Django includes a built-in admin interface for managing application data.
  • Scalability: Django is designed to handle high-traffic websites and can scale to meet increased demands.
  • Security: Django has built-in protection against many common security threats, including SQL injection, cross-site scripting, and cross-site request forgery.
  • Versatility: Django can be used for a wide range of web applications, from content management systems to social networks.

Installing Django

To start using Django, you need to install it. You can use pip to install Django. Open your terminal and run the following command:

pip install django

This will download and install Django on your system.

Creating a Django Project

Once Django is installed, you can create a new project using the django-admin command. Run the following command in your terminal:

django-admin startproject myproject

This will create a new directory called myproject with the following structure:

myproject/
├── manage.py
└── myproject/
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py

Running the Development Server

Django comes with a lightweight development server that you can use to test your application. To start the server, navigate to your project directory and run:

python manage.py runserver

You should see output similar to this:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

December 21, 2021 - 10:15:42
Django version 3.2.10, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Open your web browser and navigate to http://127.0.0.1:8000/. You should see the Django welcome page.

Creating a Django Application

In Django, a project is composed of multiple applications. To create a new application, run the following command:

python manage.py startapp myapp

This will create a new directory called myapp with the following structure:

myapp/
├── __init__.py
├── admin.py
├── apps.py
├── migrations/
│ └── __init__.py
├── models.py
├── tests.py
└── views.py

Defining Models

Models are used to define the structure of your application's data. Open the models.py file in your application and define a simple model:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

This defines a simple Post model with a title, content, and creation date.

Applying Migrations

Once you have defined your models, you need to create and apply migrations to update the database schema. Run the following commands:

python manage.py makemigrations
python manage.py migrate

These commands will create the necessary database tables for your models.

Creating Views

Views are used to handle requests and return responses. Open the views.py file in your application and define a simple view:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world!")

Configuring URLs

To map a URL to your view, you need to configure your application's URLs. Create a new file called urls.py in your application directory and add the following code:

from django.urls import path
from . import views

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

Next, include your application's URLs in the project-level urls.py file:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

Running the Application

Start the development server again by running:

python manage.py runserver

Open your web browser and navigate to http://127.0.0.1:8000/. You should see "Hello, world!" displayed on the page.

Conclusion

This tutorial provided a brief overview of Django, from installation to creating a simple application. Django's rich feature set and ease of use make it a powerful tool for web development. To learn more, refer to the official Django documentation.