【django基础教程总结】Django 是一个基于 Python 的高级 Web 框架,旨在帮助开发者快速构建安全、可维护的网站。它遵循“不要重复自己”(DRY)和“约定优于配置”的原则,提供了许多内置功能,如 ORM、模板引擎、表单处理、用户认证等。以下是对 Django 基础知识的总结,以文字加表格的形式呈现。
一、Django 核心概念
| 概念 | 说明 |
| 项目(Project) | 一个完整的 Django 应用集合,包含多个应用(App)。通常通过 `django-admin startproject` 创建。 |
| 应用(App) | 一个模块化的功能单元,例如博客、用户管理、商品管理等。每个应用可以独立开发和部署。 |
| 模型(Model) | 定义数据库结构,使用 Python 类来表示数据表。Django 提供了 ORM 来操作数据库。 |
| 视图(View) | 处理请求并返回响应,是业务逻辑的核心部分。 |
| 模板(Template) | 使用 HTML 和 Django 模板语言(DTL)来渲染页面内容。 |
| URL 路由(URLconf) | 将 URL 映射到对应的视图函数或类。使用 `urlpatterns` 列表进行配置。 |
| 中间件(Middleware) | 处理请求和响应的中间层,用于身份验证、日志记录等功能。 |
| 表单(Form) | 用于处理用户输入,提供验证和渲染功能。 |
二、Django 工作流程
1. 用户发送请求
用户访问某个 URL,比如 `http://example.com/`。
2. URL 路由匹配
Django 根据 `urls.py` 中的路由规则,找到对应的视图函数或类。
3. 执行视图逻辑
视图函数处理请求,可能包括查询数据库、调用其他函数、生成响应等。
4. 返回响应
视图返回一个 `HttpResponse` 对象,或者渲染一个模板,最终返回给用户浏览器。
5. 模板渲染(可选)
如果视图使用模板,则将数据传递给模板引擎,生成最终的 HTML 页面。
三、常用命令
| 命令 | 说明 |
| `django-admin startproject project_name` | 创建一个新的 Django 项目。 |
| `python manage.py startapp app_name` | 创建一个新的应用。 |
| `python manage.py runserver` | 启动开发服务器。 |
| `python manage.py migrate` | 应用数据库迁移,创建或更新数据库表。 |
| `python manage.py makemigrations` | 生成新的迁移文件。 |
| `python manage.py createsuperuser` | 创建管理员账号。 |
| `python manage.py shell` | 进入 Django 的交互式 Python 环境。 |
四、Django 数据库操作(ORM)
| 操作 | 示例代码 | 说明 |
| 查询所有对象 | `Model.objects.all()` | 获取所有记录。 |
| 查询特定对象 | `Model.objects.get(id=1)` | 根据主键查找一条记录。 |
| 过滤查询 | `Model.objects.filter(name='test')` | 根据条件筛选记录。 |
| 创建对象 | `Model.objects.create(name='test')` | 直接创建新记录。 |
| 更新对象 | `obj = Model.objects.get(id=1); obj.name = 'new'; obj.save()` | 修改对象后保存。 |
| 删除对象 | `Model.objects.get(id=1).delete()` | 删除指定记录。 |
五、Django 模板语言(DTL)
| 标签 | 说明 |
| `{% if condition %}` | 条件判断语句。 |
| `{% for item in list %}` | 循环遍历列表。 |
| `{{ variable }}` | 输出变量内容。 |
| `{% extends "base.html" %}` | 继承模板。 |
| `{% block content %}{% endblock %}` | 定义模板块。 |
| `{% load static %}` | 加载静态文件。 |
六、Django 表单处理
| 功能 | 说明 |
| ModelForm | 自动根据模型生成表单字段。 |
| clean() 方法 | 自定义表单验证逻辑。 |
| form.is_valid() | 检查表单是否有效。 |
| form.errors | 获取表单错误信息。 |
| form.save() | 保存表单数据到数据库。 |
七、Django 部署与生产环境
| 内容 | 说明 |
| DEBUG 设置 | 开发时设为 `True`,生产环境必须设为 `False`。 |
| 静态文件配置 | 使用 `STATIC_URL` 和 `STATIC_ROOT` 进行部署。 |
| 媒体文件配置 | 使用 `MEDIA_URL` 和 `MEDIA_ROOT` 存储用户上传内容。 |
| WSGI 配置 | 使用 `wsgi.py` 文件作为生产服务器入口。 |
| 使用 Gunicorn 或 uWSGI | 用于部署 Django 应用。 |
总结
Django 是一个功能强大且易于上手的 Web 框架,适合快速开发中小型 Web 应用。通过掌握其核心概念、工作流程、数据库操作、模板语言以及表单处理,可以高效地构建出功能完善的网站。在实际开发中,建议结合官方文档和社区资源,持续学习和实践。
