Django 是一个基于 Python 的免费开源 Web 框架,遵循模型-模板-视图 (MTV) 架构模式。它由 Adrian Holovaty 和 Simon Willison 开发,最初用于管理新闻网站,于 2005 年 7 月在 BSD 许可证下公开发布。
Django 的主要目标是简化创建复杂、数据库驱动的网站的过程。Django 强调可重用性和"可插拔性"、快速开发以及"不重复自己"(DRY) 的原则。
Django 遵循以下核心设计原则:
Django 非常适合各种 Web 项目:
对象关系映射器,允许使用 Python 代码与数据库交互,无需编写 SQL。
根据模型自动生成专业的管理后台,可快速进行 CRUD 操作。
灵活的 URL 配置,支持正则表达式,可以设计任何 URL 模式。
强大而可扩展的模板语言,支持模板继承和自定义标签。
Django 的模型是数据的单一权威来源。它包含您存储的数据的基本字段和行为。通常,每个模型映射到一个数据库表。
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
published_date = models.DateTimeField(auto_now_add=True)
视图是 Django 应用程序中处理请求并返回响应的 Python 函数或类。视图通常通过模型访问数据,并加载模板返回响应。
from django.shortcuts import render
from .models import Blog
def blog_list(request):
blogs = Blog.objects.all()
return render(request, 'blog/list.html', {'blogs': blogs})
URL 配置是将 URL 模式映射到视图的简单方法。它告诉 Django 对于特定的 URL 调用哪个视图。
from django.urls import path
from . import views
urlpatterns = [
path('blogs/', views.blog_list, name='blog_list'),
path('blog/<int:id>/', views.blog_detail, name='blog_detail'),
]
Django 模板是使用 Django 模板语言 (DTL) 编写的文本文件,用于生成动态 HTML 页面。它们可以包含变量和标签。
<!DOCTYPE html>
<html>
<head>
<title>{{ blog.title }}</title>
</head>
<body>
<h1>{{ blog.title }}</h1>
<p>{{ blog.content }}</p>
</body>
</html>
pip install django
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
python manage.py runserver