我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

它是一款开放源代码的网页发布软件,采用某个流行架构搭建而成。该系统主要面向程序员、美工人员及文章创作者,旨在给予用户一个便捷且高效的渠道,用以设计和维护网络资讯。凭借其易用的修改工具和卓越的模块化能力,它常被用于公司级信息发布,且不会强制用户使用固定的版式或布局。它能够满足从个人简易网页到大型商业门户的各种用途,已被众多知名机构选用,例如 NASA、NHS(英国国家医疗服务体系)、Oxfam 以及 MIT。

历史背景

这个系统是英国数字机构在 2011 年制作的,原本是作为某个内容管理系统的附加功能。它最开始是为了满足内部管理资料的需求而设计的,后来因为开源群体的参与,很快变成一个完善的内容管理系统。到 2025 年,它已经更新到 7.x 版本,并且有一个活跃的社群在维护,每月会发布资讯,也提供专业层面的服务。它的构思理念注重为编辑人员提供便利,也为开发者保留充分自主权,从而排除了常规内容管理系统所存在的繁复操作和限制性弊端。

cms管理系统_Wagtail开源内容管理系统_Wagtail Django CMS框架

关键特性

它的突出特点在于兼顾了创作者的自主权与建设者的可变通性。具体表现为:

特性

描述

一种新颖的排版工具,让内容制作者能够随意搭配文字、图片、影片等元素模块,无需技术人员的介入操作。它非常适用于个人网站或资讯发布平台。

开发者灵活性

依托 ,兼容 的所有特性。通过少量指令就能扩充新的资料格式。

前端自由

设有基础版式框架,创作者能够精细调整外观,兼容分离式架构。

无锁定费用

开源免费,无许可费;全球专业机构(如 )提供支持。

编辑器控制

简洁明了的后台操作面板,能够进行内容丰富文本处理,管理视觉素材,处理数据录入,执行信息检索,从而增强工作效率。

多站点支持

轻松管理多个网站,如 的多站点设置。

架构概述

其构造基于某个基础,采用 MVT(模型-视图-控制器)体系。中心是页面模型,它承袭了某种模型机制,能够形成层级化的树状布局。它融合了该体系的附加功能,比如用于内容管理系统的接口,以及基于特定技术或另一种技术的搜索组件。与其它内容管理系统有所区别,它着重体现“内容即代码”的理念,让程序员借助类来设定内容构造,而不是依赖预设的表单。

cms管理系统_Wagtail Django CMS框架_Wagtail开源内容管理系统

用例核心概念

的设计围绕几个关键概念,确保内容管理和扩展的简易性:

Wagtail Django CMS框架_Wagtail开源内容管理系统_cms管理系统

安装

这个装置的设置非常方便,只需要配置相应条件。接下来是详细步骤说明(以 3.9+版本为例)。

先决条件步骤创建并激活虚拟环境:

(cmd):

启动虚拟环境,路径为mysite下的env文件夹,并激活该环境中的脚本

macOS/Linux (bash):

启动虚拟环境,路径为mysite/env,并激活该环境,具体命令为source mysite/env/bin/activate

(激活后,命令行显示 (env))。

安装 :

pip install wagtail

生成新项目:

wagtail start mysite

这将生成一个目录,里面具备初始布局,例如 home 子目录、根目录、以及 .py 和 .txt 文件。

安装项目依赖:

切换到mysite目录,然后安装requirements.txt文件中列出的所有依赖项

创建数据库(默认 ):

python manage.py migrate

创建超级用户(admin 账户):

启动命令行工具,输入指令创建系统管理员账号

跟随提示输入用户名、邮箱和密码。

启动服务器

python manage.py runserver

进入8000端口,浏览首页界面,前往8000/admin端口,以管理员身份登录。

常规疑问:倘若 出现无法辨认状况,需将 或 接入路径环境变量中。另外:可选择装置 以优化检索效率。

入门上手:构建你的第一个 站点

根据官方教程的入门手册,我们开始逐步打造一个基础网站,该网站将包含主页面和博客功能,前提是系统已经安装完毕。

首先启动初始站点程序,其次对模型进行拓展,具体方法为增设内容字段

编辑 home/.py:

from django.db import models
在wagtail的模型中,有一个名为Page的类型
在wagtail.fields模块中,有一个名为RichTextField的字段类型
在wagtail的admin面板中导入FieldPanel
class HomePage(Page):
body为可选的富文本字段,允许留空
内容面板列表等于页面内容面板列表加上一个新项
设置 body 面板,将其加入管理界面,使用 FieldPanel 函数调用
    ]

启动命令行环境,执行管理脚本,创建数据库迁移文件,使用指定命令行工具,完成迁移准备工作
python manage.py migrate

{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block content %}
    

{{ page.title }}

{{ page.body|richtext }} {% endblock %}

重启服务器,刷新首页查看变化。

步骤 3: 创建基本博客

启动名为blog的新应用程序,通过执行命令行指令python manage.py startapp。

INSTALLED_APPS = [
    'blog',  # 新添加
    'home',
    'search',
    # ... 其他
]

from django.db import models
from wagtail.models import Page
from wagtail.fields import RichTextField
from wagtail.admin.panels import FieldPanel
class BlogPage(Page):
    intro = RichTextField()
将混合内容通过 StreamField 进行添加,其中 body 是一个字段类型
段落类型,采用丰富文本字段格式,
图片字段,与模型的外键关联,指向Image模型,当删除时级联删除,逗号
    ])
    content_panels = Page.content_panels + [
        FieldPanel('intro'),
        FieldPanel('body'),
    ]

执行管理命令,创建博客应用的迁移文件
python manage.py migrate

class BlogIndexPage(Page):
intro为富文本字段类型,允许为空值
    content_panels = Page.content_panels + [
        FieldPanel('intro'),
    ]
此函数用于获取请求信息,通过参数接收请求对象,然后返回相关上下文数据
上下文 = 父类方法获取的请求上下文信息
context里的posts赋值为BlogPage对象中属于自己的子对象,并且是激活状态
        return context

模板

blog//blog/.html:

{% extends "base.html" %}
{% load wagtailcore_tags %}
{% for post in posts %}
    

{{ post.title }}

{{ post.intro|richtext }} {% endfor %}

步骤 4: 添加媒体和搜索步骤 5: 部署基础提示

借助这些方法,能迅速掌握要领,建议先从基础界面入手,再慢慢融入其他组件和接口调用。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/12185.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线