Django 是一个流行的 Python Web 框架,它内置了许多强大的组件和功能,用于简化 Web 应用程序的开发。
以下是一些 Django 内置的主要组件及其详细说明和示例代码:
Django 模型用于定义数据模型和数据库表之间的映射。通过继承 models.Model
类,您可以定义模型的字段和其它元数据。Django 会自动为您处理数据库的创建和操作,您无需直接与数据库打交道。
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
published_date = models.DateField()
def __str__(self):
return self.title
Django 视图处理来自用户的请求,并返回相应的 HTTP 响应。视图函数接收请求作为参数,通常返回一个渲染后的模板或 JSON 数据。
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
books = Book.objects.all()
return render(request, 'index.html', {'books': books})
def book_detail(request, book_id):
book = Book.objects.get(pk=book_id)
return render(request, 'book_detail.html', {'book': book})
Django 模板是用于呈现动态内容的 HTML 文件。它支持模板继承,条件语句,循环和变量渲染等功能。
index.html 模板示例:
<!DOCTYPE html>
<html>
<head>
<title>Book List</title>
</head>
<body>
<h1>Book List</h1>
<ul>
{% for book in books %}
<li><a href="{% url 'book_detail' book.id %}">{{ book.title }}</a></li>
{% endfor %}
</ul>
</body>
</html>
Django 表单用于处理用户输入,并验证数据。它们可以直接从模型生成,也可以手动创建。
from django import forms
class BookForm(forms.ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'published_date']
# 在视图中使用表单
def create_book(request):
if request.method == 'POST':
form = BookForm(request.POST)
if form.is_valid():
form.save()
return HttpResponse("Book created successfully!")
else:
form = BookForm()
return render(request, 'create_book.html', {'form': form})
Django 提供了一个强大的管理后台,可用于管理应用程序的数据。您可以轻松地创建,读取,更新和删除数据库记录,而无需编写额外的代码。
from django.contrib import admin
from .models import Book
admin.site.register(Book)
以上只是 Django 内置组件的一部分。除此之外,Django 还提供了路由系统(URL 配置),中间件,数据库迁移,国际化支持,用户认证系统等其他重要功能,使得构建复杂的 Web 应用程序变得更加简单和高效。