Django框架

 

Django 是一个遵循“MTV”(Model-Template-View)架构的全栈 Python Web 框架,主打“开箱即用”,内置了 ORM、表单验证、用户认证、管理后台等功能,适合快速开发复杂的 Web 应用。以下是 Django 的核心使用步骤:

一、环境准备

  1. 安装 Django
    pip install django  # 安装最新版
    # 或指定版本:pip install django==4.2 (LTS版更稳定)
    
  2. 验证安装
    django-admin --version  # 显示版本号则安装成功
    

二、创建 Django 项目

  1. 初始化项目
    django-admin startproject mysite  # "mysite"是项目名,可自定义
    

    生成的目录结构:

    mysite/
    ├── manage.py          # 项目管理工具(启动服务、创建APP等)
    └── mysite/            # 项目核心配置目录
        ├── __init__.py
        ├── settings.py    # 全局配置(数据库、应用、中间件等)
        ├── urls.py        # URL路由(映射URL到视图)
        ├── asgi.py        # 异步部署入口
        └── wsgi.py        # 同步部署入口
    
  2. 启动开发服务器
    cd mysite               # 进入项目目录
    python manage.py runserver  # 默认启动:http://127.0.0.1:8000/
    # 自定义端口:python manage.py runserver 8080
    

    访问 http://127.0.0.1:8000/,看到 Django 的欢迎页面即成功。

三、创建应用(APP)

Django 项目由多个应用(APP)组成,每个 APP 负责一个功能模块(如用户管理、博客文章)。

  1. 创建 APP
    python manage.py startapp blog  # "blog"是APP名,对应博客功能
    

    生成的 APP 目录:

    blog/
    ├── migrations/        # 数据库迁移文件(ORM自动生成)
    ├── __init__.py
    ├── admin.py           # 管理后台配置
    ├── apps.py            # APP配置
    ├── models.py          # 数据模型(对应数据库表)
    ├── tests.py           # 测试代码
    └── views.py           # 视图函数(处理请求、返回响应)
    
  2. 注册 APP
    打开 mysite/settings.py,在 INSTALLED_APPS 中添加新建的 APP:
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        ...,
        'blog',  # 注册blog应用
    ]
    

四、核心开发流程(以博客为例)

1. 定义数据模型(Model)

blog/models.py 中定义数据库表结构(Django ORM 无需写 SQL):

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)  # 标题(字符串)
    content = models.TextField()              # 内容(长文本)
    create_time = models.DateTimeField(auto_now_add=True)  # 创建时间(自动填充)

    def __str__(self):
        return self.title  # 后台显示标题
  1. 数据库迁移
    将模型同步到数据库(Django 默认用 SQLite,无需额外配置):
    python manage.py makemigrations  # 生成迁移文件(记录模型变化)
    python manage.py migrate         # 执行迁移(创建数据库表)
    

3. 编写视图(View)

blog/views.py 中处理请求,返回数据或页面:

from django.shortcuts import render
from .models import Article

def article_list(request):
    articles = Article.objects.all()  # 查询所有文章
    return render(request, 'blog/article_list.html', {'articles': articles})

4. 配置 URL 路由

  • 项目级路由(mysite/urls.py):
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),  # 管理后台URL
        path('blog/', include('blog.urls')),  # 转发blog相关URL到APP的urls.py
    ]
    
  • APP 级路由(需在 blog 目录下新建 urls.py):
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('articles/', views.article_list),  # 映射/blog/articles/到article_list视图
    ]
    

5. 创建模板(Template)

blog 目录下新建 templates/blog/article_list.html(模板文件):

<!DOCTYPE html>
<html>
<head>
    <title>文章列表</title>
</head>
<body>
    <h1>博客文章</h1>
</body>
</html>

五、使用管理后台

Django 内置强大的管理后台,无需手动开发 CRUD 功能:

  1. 创建超级用户
    python manage.py createsuperuser  # 按提示输入用户名、邮箱、密码
    
  2. 注册模型到后台
    blog/admin.py 中注册模型:
    from django.contrib import admin
    from .models import Article
    
    admin.site.register(Article)  # 注册Article模型
    
  3. 访问管理后台
    启动服务器后,访问 http://127.0.0.1:8000/admin/,用超级用户登录,即可对 Article 进行增删改查。

六、核心功能扩展

  • 用户认证:Django 内置 auth 模块,支持注册、登录、权限控制(无需自己写);
  • 表单处理:用 django.forms 快速生成表单并验证数据;
  • 静态文件:配置 STATIC_URL 管理 CSS/JS/图片;
  • 数据库切换:在 settings.py 中修改 DATABASES,支持 MySQL、PostgreSQL 等。

总结

Django 的核心流程是:定义模型(Model)→ 编写视图(View)→ 配置 URL → 创建模板(Template),利用其内置功能可快速搭建完整的 Web 应用。如果需要具体场景(如接口开发、用户登录)的教程,可以告诉我,我会补充细节~