【置顶】DjangoBlog部署教程


本篇文章将会手把手教你如何部署DjangoBlog项目,首先介绍下我这里的基本环境,请大家仔细阅读此部分,下面的教程都会使用这些约定来介绍:

系统是ubuntu 18.04 LTS 假设你的域名是www.djangoblog.com。 python虚拟环境目录在 ~/python/env djangoblog源码位置在 ~/python/djangoblog 登入用户server 编辑器使用vim,你可以使用你喜欢的编辑器。

另外请注意,尽量不要使用root用户来部署,如果要使用root用户的话,需要使collectedstatic目录所有用户都有读权限。 准备工作 升级系统...

Read more

DjangoBlog插件开发指南(四):复杂插件实战案例


前言 前三篇我们学习了插件的理论知识,今天我们将通过两个真实的复杂插件案例,学习如何设计和实现生产级别的插件。 本文核心内容: - SEO 优化插件完整剖析 - 智能推荐插件设计与实现 - 性能优化技巧 - 开发最佳实践

一、案例一:SEO 优化插件 1.1 功能需求分析 核心功能: - 根据页面类型动态生成 SEO meta 标签 - 生成 Open Graph 标签(社交分享优化) - 生成 JSON-LD 结构化数据(搜索引擎优化) - 支持文章、分类、首页等多种页面类型 技术要点: - 路由感知与上下文分发 - Schema.org 结构化数据标准 - Open Graph P...

Read more

DjangoBlog插件开发指南(三):BasePlugin 与位置渲染系统


前言 前两篇我们理解了插件的工作原理和钩子系统。今天我们将学习 BasePlugin 基类——它为所有插件提供了丰富的能力,包括位置渲染、模板系统、静态资源管理等。 本文核心内容: - BasePlugin 基类的完整能力 - 位置渲染系统详解 - 模板与静态资源管理 - 完整插件开发示例

一、BasePlugin 基类概览 1.1 基类的设计目的 BasePlugin 是所有插件的父类,它封装了插件开发中最常用的功能。通过继承这个基类,插件开发者可以专注于业务逻辑的实现,而不需要关心底层的技术细节。 这个基类主要提供了四大能力: 元数据管理:统一管理插件的基本信息,如名称、版本、作者...

Read more

DjangoBlog插件开发指南(二):插件系统架构深度解析


前言 在第一篇中,我们通过 ViewCountPlugin 了解了插件的基本构成。今天我们将深入插件系统的底层,理解它是如何工作的。 本文核心内容: - 插件系统的整体架构设计 - 插件加载器的实现原理 - 钩子系统的设计与实现 - 实战:追踪一次完整的钩子调用

一、插件系统架构概览 1.1 四大核心模块 djangoblog/plugin_manage/ ├── loader.py # 插件加载器:扫描、加载、初始化插件 ├── hooks.py # 钩子系统:管理钩子注册与触发 ├── hook_constants.py # 钩子常量:统一管...

Read more

DjangoBlog插件开发指南(一):深入理解插件核心机制


在设计 DjangoBlog 之初,可扩展性是我重点考虑的特性之一。我希望能有一个优雅的机制,让开发者可以在不修改项目核心代码的情况下,自由地为其增添功能。最终,我借鉴了 WordPress 成熟的钩子(Hooks)系统,构建了 DjangoBlog 的插件体系。 这套体系的核心思想是“事件驱动”和“关注点分离”。系统在执行流程的关键节点触发“钩子(事件)”,而插件则可以“监听”这些钩子,并将自己的逻辑挂载上去。 本系列文章将带你全面了解 DjangoBlog 的插件开发。今天,我们先从分析一个内置的简单插件——文章浏览次数统计(ViewCountPlugin)——开始,来理解插件系统的...

Read more

使用github action来自动构建你的项目


github action是一套自动构建的工具,类似于Travis CI,但是由于是官方支持,所以可玩性非常高,也支持很多定制,下面就基于本博客项目的自动构建docker镜像来给大家介绍下。 基本介绍 概念介绍 github action有一些基本的概念,大家看看下面的介绍就可以理解了: - workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。 - job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。 - step(步骤):每个 job 由多个 step 构成,一步步完成。 - action ...

Read more