Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It is a full-stack framework, which means it provides everything you need to build a web application, including a database, routing, and user authentication. Django is built with scalability, flexibility, and security in mind, making it one of the most popular choices for building web applications in Python.
If you don't have Django installed, you can install it using the following pip command:
pip install django
To start a new Django project, use the django-admin startproject
command. Here’s how to create a new project named myproject:
django-admin startproject myproject
This will create a new directory named myproject with the necessary files and directories to get started.
After creating a new Django project, navigate to the project directory and run the development server using the following commands:
cd myproject python manage.py runserver
This will start a local development server at http://127.0.0.1:8000/, where you can view your project in the browser.
In Django, a project can contain multiple apps. An app is a web application that does something specific (e.g., a blog, a user authentication system, etc.). You can create an app by running the following command:
python manage.py startapp myapp
This will create a new directory called myapp within your project, containing the necessary files for your app.
In Django, views are Python functions that receive HTTP requests and return HTTP responses. To define a view, you need to add a function in the views.py file within your app directory. Here’s an example of a simple view:
from django.http import HttpResponse def home(request): return HttpResponse("Welcome to My Django App!")
To map the view to a URL, you need to define a URL pattern in the urls.py file. Here’s an example of how to map the home view to the root URL:
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), ]
This URL pattern means that when someone visits the root URL (http://127.0.0.1:8000/), the home view will be triggered.
Django uses templates to separate the presentation logic from the Python code. Templates are used to render HTML files that display dynamic content. You can create a template by adding an HTML file inside the templates folder of your app. Here’s an example of using a template:
from django.shortcuts import render def home(request): return render(request, 'home.html', {'message': 'Welcome to My Django App!'})
In this example, we render the home.html template and pass a dictionary containing the message to be displayed in the template. The template might look like this:
Home {{ message }}
Django's ORM allows you to interact with your database using Python code rather than writing raw SQL queries. You define your database models as Python classes. Here’s an example of creating a simple model:
from django.db import models class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() def __str__(self): return self.title
This Article model has two fields: title (a character field) and content (a text field). To interact with the database, you use Django’s built-in ORM methods. For example, to create a new article:
article = Article.objects.create(title="My First Article", content="This is the content of the article.")
Django is a powerful and flexible web framework for building dynamic web applications with Python. With its built-in features such as routing, templates, and ORM, it allows developers to focus on writing application logic rather than dealing with low-level web development details. Django is widely used in the industry, making it a great choice for developers looking to build robust web applications.