Django 简介与安装

 Python   大苹果   2025-02-24 09:35   979
  Django

Python Django 入门指南:Django 简介与安装

1. Django 简介

1.1 Django 的历史

Django 是一个高级 Python Web 框架,由 Adrian Holovaty 和 Simon Willison 于 2003 年开发,最初是为了满足新闻网站的快速开发需求。Django 的名字来源于爵士吉他手 Django Reinhardt,象征着框架的灵活性和优雅。

Django 于 2005 年首次公开发布,并迅速成为 Python 社区中最受欢迎的 Web 框架之一。它的设计哲学是“DRY”(Don't Repeat Yourself,不要重复自己),强调代码的可重用性和简洁性。

1.2 Django 的特点

Django 具有以下显著特点:

  • 快速开发:Django 提供了许多内置功能(如用户认证、管理后台、ORM 等),使开发者能够快速构建 Web 应用。
  • 安全性:Django 内置了多种安全机制,如 CSRF 防护、XSS 防护、SQL 注入防护等,帮助开发者构建安全的 Web 应用。
  • 可扩展性:Django 的模块化设计使其易于扩展,开发者可以根据需求添加自定义功能。
  • 跨平台:Django 支持多种操作系统(Windows、Linux、macOS)和数据库(MySQL、PostgreSQL、SQLite 等)。
  • 强大的社区支持:Django 拥有庞大的开发者社区,提供了丰富的文档、教程和第三方库。

2. MVC 与 MTV 架构

2.1 MVC 架构

MVC(Model-View-Controller)是一种常见的软件设计模式,广泛应用于 Web 开发中。它将应用程序分为三个主要部分:

  • Model(模型):负责处理数据逻辑,与数据库交互。
  • View(视图):负责显示数据,通常是用户界面。
  • Controller(控制器):负责处理用户输入,更新模型和视图。

2.2 Django 的 MTV 架构

Django 采用了类似于 MVC 的架构,称为 MTV(Model-Template-View):

  • Model(模型):与 MVC 中的 Model 类似,负责处理数据逻辑。
  • Template(模板):与 MVC 中的 View 类似,负责显示数据。
  • View(视图):与 MVC 中的 Controller 类似,负责处理业务逻辑。

尽管名称不同,Django 的 MTV 架构与 MVC 架构在功能上是相似的。Django 的设计使得开发者能够更清晰地分离数据逻辑、业务逻辑和用户界面。

3. 安装 Django 与创建项目

3.1 安装 Django

在开始使用 Django 之前,首先需要安装 Django。可以通过 Python 的包管理工具 pip 来安装 Django。

pip install django

安装完成后,可以通过以下命令检查 Django 是否安装成功:

django-admin --version

如果安装成功,将显示 Django 的版本号。

3.2 创建 Django 项目

Django 提供了一个命令行工具 django-admin,用于创建和管理项目。要创建一个新的 Django 项目,可以使用以下命令:

django-admin startproject myproject

这将创建一个名为 myproject 的目录,其中包含 Django 项目的基本结构:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • manage.py:一个命令行工具,用于管理 Django 项目。
  • myproject/settings.py:项目的配置文件,包含数据库设置、静态文件路径等。
  • myproject/urls.py:项目的 URL 路由配置。
  • myproject/wsgi.pymyproject/asgi.py:用于部署项目的 WSGI 和 ASGI 配置。

3.3 运行开发服务器

创建项目后,可以使用 manage.py 运行开发服务器:

python manage.py runserver

默认情况下,开发服务器将在 http://127.0.0.1:8000/ 上运行。打开浏览器访问该地址,将看到 Django 的欢迎页面。

4. Django 项目的结构与应用场景

4.1 项目结构详解

Django 项目由多个应用(App)组成,每个应用负责处理特定的功能。例如,一个博客项目可能包含以下应用:

  • blog:处理博客文章的发布与管理。
  • users:处理用户认证与权限管理。
  • comments:处理评论功能。

要创建一个新的应用,可以使用以下命令:

python manage.py startapp blog

这将创建一个名为 blog 的目录,其中包含应用的基本结构:

blog/
    migrations/
        __init__.py
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
  • migrations/:用于存储数据库迁移文件。
  • admin.py:用于注册模型到 Django 管理后台。
  • models.py:定义数据模型。
  • views.py:定义视图函数。
  • tests.py:编写单元测试。

4.2 应用场景

Django 适用于各种 Web 开发场景,包括但不限于:

  • 内容管理系统(CMS):Django 的内置管理后台使其非常适合构建 CMS。
  • 社交网络:Django 的用户认证系统和 ORM 使其易于构建社交网络应用。
  • 电子商务平台:Django 的表单处理和支付集成功能使其适合构建电子商务平台。
  • API 服务:Django REST Framework(DRF)使得构建 RESTful API 变得简单。

5. 示例:创建一个简单的博客应用

5.1 定义模型

blog/models.py 中定义一个简单的博客文章模型:

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

5.2 创建并应用迁移

定义模型后,需要创建并应用数据库迁移:

python manage.py makemigrations
python manage.py migrate

5.3 注册模型到管理后台

blog/admin.py 中注册模型:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

5.4 创建视图

blog/views.py 中创建一个简单的视图:

from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'blog/post_list.html', {'posts': posts})

5.5 配置 URL

blog/urls.py 中配置 URL 路由:

from django.urls import path
from . import views

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

然后在项目的 myproject/urls.py 中包含应用的 URL 配置:

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

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

5.6 创建模板

blog/templates/blog/post_list.html 中创建一个简单的模板:

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
        {% for post in posts %}
            <li>{{ post.title }} - {{ post.created_at }}</li>
        {% endfor %}
    </ul>
</body>
</html>

5.7 运行项目

完成以上步骤后,运行开发服务器并访问 http://127.0.0.1:8000/blog/,将看到博客文章的列表。

6. 总结

Django 是一个功能强大且灵活的 Web 框架,适用于各种 Web 开发场景。通过本文的介绍,你应该已经了解了 Django 的历史与特点、MVC 与 MTV 架构、安装与项目创建的基本步骤,以及如何创建一个简单的博客应用。

如果你有任何问题或建议,欢迎在评论区留言!


参考代码:所有代码示例都可以在 Python 3.x 和 Django 3.x 环境中运行。