一、基本概念

Django 是一个典型的 Web 开发框架,但更准确地说,它是一个“全能型”(Batteries-included)后端框架,Django 是一个高度封装的工具

  • 普通库(Library):像你用的 requests,是你去调用它。
  • 框架(Framework):是 Django 来调用你的代码。它制定了一套规则(比如必须有 views.py,必须有 urls.py),你只需要在规定的地方填上你的业务逻辑。

为什么叫“框架”? 因为它像盖房子的钢结构。它已经帮你处理了最复杂、最枯燥、最容易出错的部分:

  • 安全:防 SQL 注入、防跨站脚本攻击(XSS)、防跨站请求伪造(CSRF)。
  • 数据库:你不需要写 SQL 语句,用 Python 类就能操作数据库(ORM)。
  • 路由:自动把网址映射到对应的函数。
  • 后台:自动生成管理界面。

二、Django 核心三件套(MVT 架构理解)

📄 Models(模型)- 数据库设计

👉 数据库(存数据)

  • 任务:在 myapp/models.py 中定义数据结构。
  • 学习点:字段类型 (CharFieldTextFieldDateTimeField)、外键关系 (ForeignKey)。
📄 Views(视图)- 业务逻辑处理

👉 逻辑(干活的地方)

  • 任务:修改 myapp/views.py,从数据库读取数据并传递给模板。
  • 学习点:函数视图 vs 类视图 (CBV)、QuerySet API (all()filter()get())。
📄 Templates(模板)- 页面渲染

👉 页面(HTML)

  • 任务:创建 HTML 文件展示数据。
  • 学习点:Django 模板语言 (DTL)、模板继承 、静态文件加载 。
  • 目录结构建议:在 myapp 下创建 templates/myapp/ 文件夹。

“ 页面内容=数据库+视图 ” 决定

整个过程就是:用户发出请求→视图处理请求→模型提供数据→模板展示数据→用户接受相应

三、实现个人博客系统核心功能

1. 定义数据模型,编写models.py文件

需要注意的是,只要添加了新模块,就得有一次数据块迁移指令执行,从而创建新模块所对应的表结构。

// 执行数据库迁移: 在终端(Terminal)中运行以下命令,让 Django 在 SQLite 数据库中创建这张表:
python manage.py makemigrations
python manage.py migrate

或者直接在终端用基本CRUD指令操作数据库

2. 配置后台管理,编写admin.py文件

//创建超级管理员账号: 在终端运行:
python manage.py createsuperuser


(这里的警告可以忽略哦)

3. 编写视图,views.py

4. 配置路由,urls.py

首先创建 myapp/urls.py(为了保持项目结构清晰,我们建议在 myapp 内部处理自己的路由),

然后修改主路由 my_project/urls.py: 将原来的直接引用改为 include 方式,这样更规范。

5. 创建模板 (Template)

Django 需要 HTML 文件来展示数据。创建页面 myapp/templates/myapp/.html

6. 运行服务器(manage.py)

python manage.py runserver

(地址栏加入admin,进入后台管理页面)

四、代码层级

my_project和myapp文件夹里面目录结构不一样:

🏢 my_project = 公司总部

负责:

  • 制定规则(settings.py)
  • 指挥交通(urls.py)
  • 决定用什么数据库

即不写业务代码,只做调度


🧑‍💻 myapp = 某个部门

负责:

  • 干具体活(业务逻辑)
  • 写代码(views)
  • 管数据(models)

即真正写功能的地方,一个项目(my_project)可以有多个 app,比如本文中出现的comment模块可以直接重新开一个app,不用写在models.py了面了。

五、 学 Django 的 5 个核心好处


1️⃣ 开发效率极高

  • 写个 model → 自动建表
  • 注册 admin → 自动有后台
  • 不用写 SQL

2️⃣ 自带“后台管理系统”

admin/ 这个东西:

  • 企业内部工具直接能用
  • CRUD 全自动
  • 权限系统自带

 3️⃣ 强制你学会“规范开发”

Django 不允许你乱写,即工程化开发思维:

  • models(数据)
  • views(逻辑)
  • templates(页面)

4️⃣ 能做真实项目

  • 博客系统
  • 管理后台
  • 小程序后端
  • 企业内部系统

 5️⃣ Python生态加持

 Django = Python Web 可以结合:

  • 爬虫
  • 数据分析
  • AI

比 Java Web 灵活很多

❗但Django 不适合什么?

高并发系统(比如抖音)
纯前端项目

它最适合:中后台系统 / 管理系统 / 内容系统

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐