Learning Path
浏览 Django 相关教程与章节。
PHP、Node.js、Java Web、Python Web 框架、API 与服务端开发。
教程
32
Django 教程 Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。 Django 提供了一套强大的工具和约定,使得开发者能够快速构建功能齐全且易于维护的网站。 Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 。 Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Templa..
Django Admin 管理工具 Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: /HelloWorld/HelloWorld/settings.py 文件代码: [mycode3 type='python'] INSTALLED_APPS = ( ..
Django 用户认证(Auth)组件 Django 用户认证(Auth)组件一般用在用户的登录注册上,用于判断当前的用户是否合法,并跳转到登陆成功或失败页面。 Django 用户认证(Auth)组件需要导入 auth 模块: # 认证模块 from django.contrib import auth # 对应数据库 from django.contrib.auth.models import User 返回值是用户对象。 创..
Django Admin — 后台管理文章 本章你将学会配置 Django Admin,无需写前端代码就能拥有内容管理后台。 Admin 是什么? Django Admin 是 Django 最强大的内置功能之一:你只需注册模型,它就自动生成一个完整的后台管理系统。 后台提供文章的增删改查、搜索、过滤、分页等功能,无需你自己写任何 CRUD 代码。 创建超级用户 首先需要创建一个管理员账号来登录后台: (venv) $ p..
用户系统 — 注册、登录、登出 本章你将学会使用 Django 内置的认证系统,实现用户注册、登录和登出功能。 Django 内置 auth 系统 Django 自带一套完整的用户认证模块: 内置 User 模型(用户名、密码、邮箱等) 内置登录/登出视图(无需自己写逻辑) 内置的权限和组管理 表单验证和安全防护(CSRF、XSS) 这个模块是 django.contrib.auth,在创建项目时已经默认注册到了 INSTA..
类视图(CBV)重构 本章你将学习 Django 的类视图(CBV),用更简洁的代码重构首页和详情页。 FBV vs CBV 到目前为止,我们所有的视图都是用函数写的(Function-Based View,FBV)。 Django 还提供了 类视图(Class-Based View,CBV),用类来封装视图逻辑。 特性FBV(函数视图)CBV(类视图) 代码量灵活,但常用逻辑需要重复写继承通用视图后只需几行代码 可读性线性..
打包上线 — 部署到 Railway 本章你将学会配置生产环境,将 Django 博客应用部署到 Railway,获得公开访问链接。 生产环境配置 开发环境中 DEBUG=True,Django 会显示详细的错误信息和调试页面。 生产环境中必须关闭 DEBUG,并正确配置安全选项。 settings.py 生产配置 实例 [mycode4 type='python'] # 文件路径:blog_proje..
分类筛选与关键词搜索 本章你将学会处理 URL 查询参数,实现分类筛选导航和关键词搜索功能。 URL 查询参数 查询参数是 URL 中问号后面的部分,如 /?category=django&q=入门。 在 Django 视图函数中,通过 request.GET 获取这些参数。 实例 [mycode4 type='python'] def index(request): # request...
表单与收藏功能 本章你将学会处理用户 POST 请求,建立多对多关系,并实现「收藏文章」功能。 收藏功能的数据模型设计 收藏功能的核心是:一个用户可以收藏多篇文章,一篇文章可以被多个用户收藏。 这是典型的多对多(ManyToMany)关系。 我们不需要新建模型——Django 的 User 模型是内置的,只需要在 Post 模型中添加一个 ManyToManyField 指向 User。 实例 [mycode4 type=..
模型与数据库 本章你将学会用 Django ORM 定义数据模型,创建数据库表,并插入测试数据。 为什么需要模型? 上一章我们硬编码了页面文字。真正的博客需要存储多篇文章,且内容随时会变。 模型(Model) 是 Django 的数据库层:用 Python 类定义数据结构,Django 自动生成对应的数据库表。 你不需要写一行 SQL——这就是 ORM(对象关系映射) 的核心价值。 定义 Post 模型 打开 blog/mod..
Django 博客项目 本章带你从零开始,用 Django 创建一个博客项目,理解项目结构和请求生命周期。 环境准备 Django 是 Python Web 框架,需要先确认 Python 环境。 打开终端,检查 Python 版本(需要 3.8 以上): $ python3 --version Python 3.12.0 创建虚拟环境并安装 Django 虚拟环境是 Python 项目的标准实践,让每个项目有独立的依赖,..
URL 路由与文章详情页 本章你将学会 Django 的动态路由配置,实现文章详情页和页面之间的链接跳转。 动态路由是什么? 首页展示的是所有文章,每篇文章需要有自己的独立详情页。 URL 应该像这样:/post/1/、/post/2/,其中数字部分是文章的主键(pk)。 动态路由 允许 URL 中包含变量,Django 会自动提取并传入视图函数。 配置动态路由 实例 [mycode4 type='python..
视图与模板 — 渲染文章列表 本章你将学会用 Django 视图从数据库取数据,配合模板渲染出博客首页的文章卡片列表。 视图(View)的作用 视图是 Django 的核心逻辑层,负责: 接收用户请求(request 参数) 从数据库查询需要的数据 将数据传给模板渲染 HTML,返回给用户 Django 视图有两种写法:函数视图(FBV) 和类视图(CBV)。 前八章我们优先使用 FBV——它更直观,适合初学者理解请求处理流..
Django cookie 与 session Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。 识别返回用户包括三个步骤: 服务器脚本向浏览器发送一组 Cookie。例如:姓名、年龄或识别号码等。 浏览器将这些信息存储在本地计算机上,以备将来使用。 当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些 Cookie 信息发送到服务器,服务器将使用这些信息来识别用户。 HTTP 是一种“无状态”协议..
Django django-admin 命令详解 django-admin 是 Django 框架提供的一个命令行工具,它是管理 Django 项目的核心工具。 无论是创建新项目、运行开发服务器,还是执行数据库迁移,django-admin 都是不可或缺的工具。 要查看 django-admin 提供的所有命令,可以运行: django-admin help 输出内容类似如下: Type 'django-admin ..
Django 创建第一个项目 本章我们将介绍 Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目。 测试版本说明: Python 3.9.7 Django 4.2.7 通过以下命令可以查看版本号: # python3 -V Python 3.9.7 # python3 -m django --version 4.2.7 Django 管理工具 安装 Django 之后,您..
Django Form 组件 Django Form 组件用于对页面进行初始化,生成 HTML 标签,此外还可以对用户提交的数据进行校验(显示错误信息)。 报错信息显示顺序: 先显示字段属性中的错误信息,然后再显示局部钩子的错误信息。 若显示了字段属性的错误信息,就不会显示局部钩子的错误信息。 若有全局钩子,则全局钩子是等所有的数据都校验完,才开始进行校验,并且全局钩子的错误信息一定会显示。 使用 Form 组件,需要先导入 form..
Django 表单 HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。 HTTP 请求 HTTP协议以“请求-回复”的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。 GET 方法 我们在之前的项目中创建一个 search.py 文件,用于接收用户的请求: /HelloWorld/HelloWorl..
Django 安装 在安装 Django 前,系统需要已经安装了 Python 的开发环境。 如果你还没有安装 Python,请先从 Python 官网 https://www.python.org/ 下载并安装最新版本的 Python。 Django 安装也很简单使包管理工具 pip 就可以了: pip install Django 安装完成后,你可以通过运行以下命令验证 Django 是否成功安装: python3 -m dja..
Django 简介 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。 使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务。 Django 提供了全栈开发所需的工具,包括数据库 ORM、模板引擎、路由系统、用户认证等,大幅减少重复代码。 Django 的哲学: DRY(Don’t Repeat You..
Django 中间件 Django 中间件是修改 Django request 或者 response 对象的钩子,可以理解为是介于 HttpRequest 与 HttpResponse 处理之间的一道处理过程。 浏览器从请求到响应的过程中,Django 需要通过很多中间件来处理,可以看如下图所示: Django 中间件作用: 修改请求,即传送到 view 中的 HttpRequest 对象。 修改响应,即 view 返回的 Ht..
Django 模型 Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调用API。 我们可以根据自己业务需求选择不同的数据库。 MySQL 是 Web 应用中最常用的数据库。本章节我们将以 Mysql 作为实例进行介绍。你可以通过本站的 MySQL 教程 了解更多 MySQL 的基础知识。 如果你没安装 mysql 驱动,可以执..
Django Nginx+uwsgi 安装配置 在前面的章节中我们使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文将以 Nginx 为例。 你也可以直接参考:Python uwsgi 安装配置 安装基础开发包 Centos 下安装步骤如下: yum groupi..
Django ORM - 单表实例 阅读本章节前你需要先阅读了 Django 模型 进行基础配置及了解常见问题的解决方案。 接下来我们重新创建一个项目 app01(如果之前已创建过,忽略以下操作): django-admin.py startproject app01 接下来在 settings.py 中找到 INSTALLED_APPS 这一项,如下: INSTALLED_APPS = ( 'django.c..