Wagtail 教程系列 记录了基于 Wagtail 搭建博客站点的整个过程,博客站点 所呈现的即是搭建过程的最新效果。

更多 Wagtail 内容:https://slowread.cn/wagtail-tutorials

首先设置 Wagtail 运行环境

virtualenv

Linux 系统下一般存在多个版本 Python 环境,建议采用 virtualenv 创建干净/独立的运行环境。

安装 virtualenv

sudo pip install virtualenv

Copy

使用默认设置创建虚拟环境

cd my_project_folder
virtualenv venv

Copy

使用指定的Python解释器创建虚拟环境

linux 系统下:

virtualenv -p /usr/bin/python3.6 venvvirtualenv -p /usr/local/bin/python3 venv

Copy

Windows 系统下:

virtualenv -p python venv

Copy

创建“干净”的虚拟环境

virtualenv --no-site-packages venv

Copy

激活虚拟环境

source ./venv/bin/activate    # linux 系统下.\venv\Scripts\activate     # Windows 系统下

Copy

退出/停用虚拟环境

rm -rf /venv

Copy

Wagtail 初始化设置

虚拟环境中安装 wagtail,自动安装依赖包:

(venv) $ pip install wagtail

Copy

创建 wagtail 项目

(venv) $ wagtail start slowread

Copy

整理项目文件目录,将 /slowread/slowread/slowread 目录下所有文件和目录移动到 /slowread/slowread 目录下,将 /slowread/slowread/manage.py 文件移动到 /slowread 目录下。

修改 /slowread/manage.py 文件内容如下:

#!/usr/bin/env python
import os
import sysif __name__ == "__main__":os.environ.setdefault("DJANGO_SETTINGS_MODULE", "slowread.settings.dev")from django.core.management import execute_from_command_linecurrent_path = os.path.dirname(os.path.abspath(__file__))sys.path.append(os.path.join(current_path, "slowread"))execute_from_command_line(sys.argv)

Copy

不修改为上面内容的话,会出现找不到 home models 的问题等 。

修改 /slowread/slowread/wsgi.py 文件内容如下:

import os
import sysfrom django.core.wsgi import get_wsgi_application# This allows easy placement of apps within the interior
# djmyblog directory.
app_path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir))
sys.path.append(os.path.join(app_path, 'slowread'))os.environ.setdefault("DJANGO_SETTINGS_MODULE", "slowread.settings.dev")application = get_wsgi_application()

Copy

修改 /slowread/slowread/settings/base.py 文件内 语言/时区设置如下:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

Copy

修改 /slowread/slowread/settings/base.py 文件内静态/媒体文件位置,BASE_DIR 改为 PROJECT_DIR,设置如下:

STATICFILES_DIRS = [os.path.join(PROJECT_DIR, 'static'),
]STATIC_ROOT = os.path.join(PROJECT_DIR, 'collect_static')
STATIC_URL = '/static/'MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
MEDIA_URL = '/media/'

Copy

在 slowread 目录下,执行标准 Django 项目必要设置步骤:

(venv) $ pip install -r requirements.txt
(venv) $ ./manage.py migrate
(venv) $ ./manage.py createsuperuser
(venv) $ ./manage.py runserver

Copy

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

建立第一个 Wagtail 页面

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

{% block content %}<h1>{{ self.title }}</h1>
{% endblock %}

Copy

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

扩展 HomePage 模型

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

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

Copy

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

python manage.py makemigrations
python manage.py migrate或者合并为一行命令:python manage.py makemigrations && python manage.py migrate

Copy

现在打开 http://127.0.0.1:8000/admin ,进入:

页面,Home,编辑
或者
页面,页面(主页面),Home,编辑

对应的操作地址:http://127.0.0.1:8000/admin/pages/ , 即页面顶部显示为 Root,鼠标放在 Home 行,然后选择 编辑。

可以看到新出现了 BODY 区域。填写下面内容,然后发布。

Wellcome to my Wagtail site.

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

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

Copy

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

检查一下设置区域中的内容:

主机名:localhost
端口号:80
跟页面:Home
是默认站点:是

保存

打开 http://127.0.0.1:8000 ,查看页面内容。

站点 logo

编辑 /slowread/templates/base.html , 在 <head></head> 之间加入下面内容:

<link rel="icon" type="image/png" sizes="32x32" href="{% static 'media/slowread-32x32.ico' %}">
<link rel="icon" type="image/png" sizes="16x16" href="{% static 'media/slowread-16x16.ico' %}">

Copy

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

favicon.ico

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

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

Wagtail 教程 1 :基础设置相关推荐

  1. Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

    Midjourney|文心一格prompt教程[基础篇]:注册使用教程.风格设置.参数介绍.隐私模式等 开头讲一下为什么选择Midjourney和文心一格,首先Midjourney功能效果好不多阐述: ...

  2. Axure RP 8教程 - 基础设置

    Axure小白的福利又来了,本教程包含Axure基础设置的介绍和操作,通过对这部分的学习,就可以掌握Axure的基本设置.希望大家边学边操作,学习效果更佳哦. 1.页面设置 1.设置页面居中. 在页面 ...

  3. creo自定义调用零件库_cero基础设置教程,五步cero5.0设置调用自定义标准件的方法...

    cero基础设置教程,五步cero5.0设置调用自定义标准件的方法 cero是现今非常好用的结构设计软件,里面有很多设置方法和技巧,你知道library 里的标准件怎么才能被找到?下面为大家分享cer ...

  4. coreldraw x8段落_CorelDRAW基础设置图文教程,教你CDR X8设置文字为默认字体

    CorelDRAW基础设置图文教程,教你CDR X8设置文字为默认字体 CorelDRAW是一款非常出色的文字编排排版软件,对于平面设计三大软件之一,它的功能优势以及应用设计显而易见,对于想要从事平面 ...

  5. java怎样搞驱动_Java数据库接口JDBC基础教程之驱动设置

    DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间.它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接.另外,DriverManager 类也处理诸如驱动程序登录时 ...

  6. Win10系统Intellij IDEA-2020下载、安装、注册、基础设置,傻瓜教程没手都行

    文章目录 前言 下载安装包 安装 注册 基础设置 前言 关于IDEA这个工具这里不多赘述了,会用到这个工具的朋友基本都有一定的基础不是小白,话不多说直接上手动起来. 下载安装包 官网链接:https: ...

  7. wordpress怎么设置文章页面不打开新的窗口_2019 WordPress外贸网站SEO优化基础设置(新手图文教程)...

    做好了网站,选好了主题,配备了必备插件,基础SEO怎么设置才能避免后面经常改动基础设置,导致关键词排名降低,页面收录消失等问题呢? 对于外贸建站老鸟来说,他们装备了插件Yoast SEO的时候,就会把 ...

  8. 主生产计划 操作教程 用友u8_用友U8:基础设置中的系统启用

    本功能用于已安装系统(或模块)的启用,并记录启用日期和启用人.要使用一个产品必须先启用这个产品. 进入系统启用: 用户创建一个新账套后,自动进入系统启用界面,用户可以一气呵成的完成创建账套和系统启用. ...

  9. Eigen教程1 - 基础

    Eigen教程1 - 基础 参考:https://blog.csdn.net/xuezhisdc/article/details/54619853 固定大小的矩阵和向量 /** 参考链接:http:/ ...

  10. 计算机键盘输入法基础知识,教程计算机基础知识-:认识输入法

    教程计算机基础知识-:认识输入法 认识输入法 在任务栏的右边有一个小键盘图标,这就是输入法,默认输入的是英文字母,点击可以选择汉字输入法: 1.切换输入法 1)瞄准任务栏上的小键盘点左键,在出来的菜单 ...

最新文章

  1. 离职人员防止删除文件域策略
  2. 固态硬盘坏块修复工具_哪些情况影响固态硬盘寿命 影响固态硬盘寿命症状【详解】...
  3. 计算SDWebImage缓存大小以及清除
  4. echarts map
  5. CentOS系统缺少库文件解决办法
  6. 【CF453D】 Little Pony and Elements of Harmony(FWT)
  7. 路径规划之基于插值的规划算法
  8. 我没钱 如何推广自己的网站
  9. STL--queue
  10. live2d手机制作软件_live2d制作器手机版
  11. 【JavaScript】支持js代码的博客有…
  12. JSP基本语法(2)函数
  13. 吴伯凡-认知方法论-矩阵式认知与苏格拉底
  14. window 10 局域网同步时间(解决错误:This scheduler instance is still active but was recovered by another instanc)
  15. 人工智能学习——神经网络(matlab+python实现)
  16. 一文轻松掌握python语言命名规则(规范)
  17. MySQL执行-SQL执行顺序
  18. 全新 MacBook Air MGN63CH/A / MGN93CH/A / MGND3CH/A / MGN73CH/A / MGNA3CH / MGNE3CH/A 配置报价图片
  19. ROS小车应用:控制机器人做圆周运动
  20. (176)FPGA与门实现门控时钟原理

热门文章

  1. 【操作系统】CPU调度算法
  2. 腾讯服务器鉴黄系统,腾讯云智能鉴黄系统
  3. Flink 第8.2章 Flink 的键组 KeyGroup 与 缩放 Rescale
  4. syncthing同步慢_使用Syncthing在多个设备上同步文件
  5. 下面不属于python保留字_下面不属于Python保留字的是
  6. 常用工作方法总结(7S、SWOT分析、PDCA循环、SMART原则、6W2H、时间管理、WBS等)
  7. 基于n元语言模型整句拼音汉字转换
  8. 项目管理之项目风险应对
  9. 数据安全风险分析及应对策略研究
  10. python--基本操作