Wagtail
Wagtail 是一个基于 Django 的开源内容管理系统,界面友好且可高度自定义。
智能下载
前往项目主页
该项目暂未提供安装包,请直接访问源代码仓库
基于 Django 的现代 CMS,兼顾编辑体验与开发者灵活性。
核心功能
- 直观的编辑界面,作者可快速上手
- StreamField 允许灵活编排内容模块而不失结构
- 内置强大搜索(支持 Elasticsearch/PostgreSQL)
- 支持多站点、多语言
- 提供 Headless API,可解耦前后端
避坑指南
- •Wagtail 依赖 Django,需具备 Python 和 Django 基础。默认使用 SQLite,生产环境建议切换为 PostgreSQL 或 MySQL。StreamField 虽然灵活,但设计不当可能影响内容一致性。
适用场景
- 企业官网、新闻门户、博客平台
- 政府或非营利组织的多语言网站
- 需要高度定制前端的项目,如品牌展示站
- 作为无头 CMS,为移动端或单页应用提供内容
详细介绍
Wagtail 是一个基于 Django 的开源内容管理系统 (CMS),专为内容编辑者和开发者设计。它提供直观的编辑界面,同时让开发者完全掌控前端设计和结构。Wagtail 可扩展性强,支持百万级页面和数千名编辑人员。核心特性包括 StreamField(灵活的内容建模)、内置搜索(Elasticsearch 或 PostgreSQL)、多站点/多语言支持、以及无头内容 API。被 NASA、Google、NHS 等机构采用。
常见问题与排障 (1)
操作指南如何在Wagtail CMS字段中允许编辑器使用类似 {{ user.name }} 的Django模板变量?
使用自定义的重新渲染函数。首先,使用初始上下文(例如通过 render_to_string)渲染模板。然后,将输出传递给一个函数,该函数将其作为具有相同上下文的 Django 模板重新评估。示例函数:
from django.template import Context, Template
def re_render_html_template(email_body, context):
template = Template(email_body)
context = Context(context)
return template.render(context)
调用:
email_body = render_to_string('email.html', context)
email_body = re_render_html_template(email_body, context)
这是因为 Wagtail 会将 CMS 插入的 {{ var }} 作为纯文本渲染,但第二次渲染将它们解释为模板标签。将此逻辑放在准备最终输出的视图/服务器端函数中(例如在发送电子邮件或显示页面之前)。注意:这是通用的 Django 技术,不是官方 Wagtail 特性,因此建议仔细考虑安全影响(例如用户提供的模板代码)。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
步骤1:在虚拟环境中执行 pip install wagtail
步骤2:运行 wagtail start mysite 创建项目
步骤3:进入项目目录,执行 pip install -r requirements.txt
- 步骤1:在虚拟环境中执行 pip install wagtail
- 步骤2:运行 wagtail start mysite 创建项目
- 步骤3:进入项目目录,执行 pip install -r requirements.txt
暂未获取到校验码
该项目暂未在 GitHub Release 页面提供 SHA-256 校验码
SHA256 校验码
暂无校验码
建议从 GitHub Releases 页面直接下载,并自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
如果通过 pip 安装,使用 pip uninstall wagtail 卸载。如需完全移除项目文件,删除项目文件夹即可。注意备份数据库和媒体文件。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
1 FAQ