(学习笔记)Django 内容管理系统 wagtail 基础设置

Wagtail 是一个用 Python 编写的开源 CMS,基于 Django 框架构建。 它优雅、强大、敏捷,专注于灵活性和用户体验,为开发人员提供一个快速有吸引力的界面,可以直观地创建和组织内容。

安装 wagtail

<code>pip install wagtail/<code>

通过 pip 进行全局安装 wagtail ,一般情况建议在虚拟环境中安装 wagtail ,后面会讲到,本文不再赘述。

创建 wagtail 项目

<code>wagtail start hello_wagtail/<code>

创建一个wagtail 项目,项目名称为 hello_wagtail

执行标准 Django 项目必要设置步骤

<code>pip install -r requirements.txtpython manage.py migratepython manage.py createsuperuserpython manage.py runserver/<code>

打开 http://127.0.0.1:8000 , 或者直接打开 http://127.0.0.1:8000/admin/ ,输入用户名/密码,进入后台管理,左下角 账号管理,语言首选项,选择 中文。


(学习笔记)Django 内容管理系统 wagtail 基础设置

至此,一个 wagtail 项目就搭建起来了,访问 http://127.0.0.1:8000 查看。


(学习笔记)Django 内容管理系统 wagtail 基础设置


建立第一个 Wagtail 页面

编辑 home/templates/home/home_page.html:

<code>from django.db import modelsfrom wagtail.core.models import Pagefrom wagtail.core.fields import RichTextFieldfrom wagtail.admin.edit_handlers import FieldPanelclass HomePage(Page):    body = RichTextField(blank=True)    content_panels = Page.content_panels + [        FieldPanel('body', classname="full"),    ]/<code>

在后台修改默认首页的标题为 "My first wagtail website !",然后点击发布。


(学习笔记)Django 内容管理系统 wagtail 基础设置


打开 http://127.0.0.1:8000 ,第一个最简单的 Wagtail 页面出现了。


(学习笔记)Django 内容管理系统 wagtail 基础设置


扩展 HomePage 模型

编辑 home/models.py ,向body模型添加字段:

<code>from django.db import modelsfrom wagtail.core.models import Pagefrom wagtail.core.fields import RichTextFieldfrom wagtail.admin.edit_handlers import FieldPanelclass HomePage(Page):    body = RichTextField(blank=True)    content_panels = Page.content_panels + [        FieldPanel('body', classname="full"),    ]/<code>

每次更改模型定时时,都要运行以下命令:

<code>python manage.py makemigrationspython manage.py migrate或者合并为一行命令:python manage.py makemigrations && python manage.py migrate/<code>

现在打开 http://127.0.0.1:8000/admin
进入刚才的 "My first wagtail website !" 页面,可以看到新出现了 BODY 区域。填写下面内容,然后发布。

Wellcome to my Wagtail site.

(学习笔记)Django 内容管理系统 wagtail 基础设置


编辑 home/templates/home/home_page.html 更改为以下内容:

<code>{% extends "base.html" %}{% load wagtailcore_tags %}{% block body_class %}template-homepage{% endblock %}{% block content %}    {{ page.body|richtext }}{% endblock %}/<code>

每个模板文件都要包含 {% load wagtailcore_tags %},否则 Django 会提示 TemplateSyntaxError 错误。

打开 http://127.0.0.1:8000 ,查看页面内容,可以看到网站标题和页面已经渲染出来了。


(学习笔记)Django 内容管理系统 wagtail 基础设置

站点 logo

编辑 /hello_wagtail/templates/base.html , 在

之间加入下面内容:
<code><link><link>/<code> 

前提是在 /hello_wagtail/static/media 目录下已经存在上面的图标文件。修改后,再次运行服务,可以看到站点新添加的 logo 效果。

favicon.ico 问题

关于 Not Found: /favicon.ico 问题解决:

<code>from django.views.generic import RedirectViewurlpatterns = [    ...    url(r'^favicon\\.ico$',RedirectView.as_view(url='/static/media/favicon.ico')),    ...]/<code>


分享到:


相關文章: