Wagtail - 基于Django的开源CMS建站系统,Python开发,StreamField灵活内容建模,NASA与Google都在用

Wagtail - 基于Django的开源CMS建站系统,Python开发,StreamField灵活内容建模,NASA与Google都在用

_

项目简介

Wagtail 是一款基于 Django 框架构建的开源内容管理系统(CMS),以卓越的用户体验和强大的内容建模能力著称。项目采用 Python 开发后端、JavaScript/TypeScript 构建前端管理界面,提供直观美观的后台编辑体验,支持从个人博客到大型企业级网站的各种建站需求。Wagtail 的核心特色 StreamField 组件让编辑者可以灵活组合富文本、图片、视频、嵌入内容等多种内容块,同时保持结构化的数据模型。
Wagtail 在 GitHub 上拥有超过 20k Stars,最新版本为 v7.4.1,被 NASA、Google、Mozilla、MIT、BMW、美国红十字会、英国 NHS 等知名机构采用,是 Python 生态中最受推崇的 CMS 建站方案。
Wagtail CMS 内容管理后台界面

核心功能

  • StreamField 内容建模:通过可复用的内容块(StreamField)灵活组合页面结构,支持富文本、图片、视频、嵌入代码、自定义组件等
  • 直观的后台界面:现代化、响应式的管理后台,编辑体验流畅友好,非技术人员也能轻松上手
  • 页面树结构管理:可视化的页面层级树,支持拖拽排序、批量操作、页面复制和移动
  • 多站点管理:单个 Wagtail 实例可管理多个网站,每个站点拥有独立的页面树和配置
  • 多语言支持:内置国际化(i18n)框架,支持多语言内容创建和翻译工作流
  • Headless API:提供 Content API,支持前后端分离架构,可用 Next.js、Nuxt 等框架渲染前端
  • 强大的搜索功能:集成 Elasticsearch 或 PostgreSQL 全文搜索,支持按内容类型、标签、日期等维度检索
  • 图片与文档管理:内置媒体库,支持图片裁剪、焦点区域设置、批量上传、收藏夹分类
  • 工作流与审核:支持内容草稿、审核流程、定时发布、版本对比和回滚
  • 权限精细控制:基于用户组和角色的权限系统,可精确控制页面级别的编辑、发布权限
  • 表单构建器:可视化创建联系表单、调查问卷等,自动收集和导出提交数据
  • 前端设计完全自由:不限制前端模板和样式,开发者可完全自定义页面外观
  • 高性能扩展:可从树莓派到多数据中心云平台部署,支持缓存优化,轻松处理百万级页面
  • Django 生态无缝集成:可利用 Django 海量第三方库和中间件,扩展功能无上限
  • SEO 友好:自动生成 sitemap、支持自定义 URL 结构、meta 标签管理、重定向管理

仓库信息

安装方式

方式一:pip 快速安装(推荐新手)

# 创建虚拟环境
python -m venv mysite
source mysite/bin/activate
# 安装 Wagtail
pip install wagtail
# 创建新项目
wagtail start mysite
cd mysite
# 安装依赖
pip install -r requirements.txt
# 初始化数据库
python manage.py migrate
# 创建管理员账户
python manage.py createsuperuser
# 启动开发服务器
python manage.py runserver
# 访问 http://127.0.0.1:8000/admin

方式二:Docker 部署

# 使用官方 Docker 镜像
docker run -d --name wagtail \
  -p 8000:8000 \
  -v /path/to/project:/app \
  wagtail/wagtail:latest

Docker Compose 配置:
version: '3.8'
services:
db:
image: postgres:16
environment:
POSTGRES_DB: wagtail
POSTGRES_USER: wagtail
POSTGRES_PASSWORD: wagtail_password
volumes:
- ./postgres_data:/var/lib/postgresql/data
wagtail:
image: wagtail/wagtail:latest
ports:
- "8000:8000"
volumes:
- ./app:/app
environment:
- DATABASE_URL=postgres://wagtail:wagtail_password@db:5432/wagtail
depends_on:
- db

方式三:Bakery 模板项目(快速建站)

# 使用预配置的 Bakery 模板快速搭建网站
pip install wagtail
wagtail start bakery mysite
cd mysite
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

方式四:集成到现有 Django 项目

# 在已有 Django 项目中添加 Wagtail
pip install wagtail
# 在 settings.py 的 INSTALLED_APPS 中添加
INSTALLED_APPS = [
    'wagtail',
    'wagtail.admin',
    'wagtail.documents',
    'wagtail.images',
    'wagtail.sites',
    'modelcluster',
    'taggit',
    # ... 其他应用
]
# 在 urls.py 中添加 Wagtail 路由
from django.urls import path, include
urlpatterns = [
    path('cms/', include('wagtail.admin.urls')),
]

使用场景

  • 企业官网建设:NASA、Google、BMW 等大型机构的选择,适合需要精细内容管理的官方网站
  • 新闻媒体网站:支持复杂的文章排版、多媒体嵌入、定时发布工作流
  • 政府机构门户:满足无障碍访问(WCAG)要求,支持多语言内容管理
  • 教育机构网站:MIT 等高校采用,适合课程展示、研究发布、校园资讯
  • 非营利组织网站:Mozilla、红十字会等采用,适合公益项目展示和捐赠管理
  • Headless 内容中台:通过 Content API 为移动端 App、小程序提供内容服务
  • 个人博客/作品集:轻量部署,完全自定义前端设计

与同类 CMS 对比

特性WagtailWordPressStrapiGhost
开发语言Python/DjangoPHPNode.jsNode.js
开源协议BSD-3-ClauseGPLMITMIT
内容建模StreamField 极强灵活但松散动态 API 极强专注博客
后台体验现代化美观传统风格现代化现代化简洁
扩展性Django 生态插件市场插件系统有限
Headless原生支持需插件原生支持部分支持
安全性高(Django)易被攻击中等中等
多站点原生支持需插件需插件不支持
企业用户NASA/Google广泛增长中媒体行业
学习曲线中等(需 Django)
Meilisearch - 开源高性能全文搜索引擎,Rust开发,50毫秒响应,支持中文语义搜索,替代Elasticsearch 2026-06-17
LightLayer年付便宜VPS $24.99/年:香港/台湾/新加坡/美国洛杉矶多机房可选,原生IP+NVMe高速硬盘 2026-06-17

评论区