Wagtail 教程 1 :基础设置
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 :基础设置相关推荐
- Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等
Midjourney|文心一格prompt教程[基础篇]:注册使用教程.风格设置.参数介绍.隐私模式等 开头讲一下为什么选择Midjourney和文心一格,首先Midjourney功能效果好不多阐述: ...
- Axure RP 8教程 - 基础设置
Axure小白的福利又来了,本教程包含Axure基础设置的介绍和操作,通过对这部分的学习,就可以掌握Axure的基本设置.希望大家边学边操作,学习效果更佳哦. 1.页面设置 1.设置页面居中. 在页面 ...
- creo自定义调用零件库_cero基础设置教程,五步cero5.0设置调用自定义标准件的方法...
cero基础设置教程,五步cero5.0设置调用自定义标准件的方法 cero是现今非常好用的结构设计软件,里面有很多设置方法和技巧,你知道library 里的标准件怎么才能被找到?下面为大家分享cer ...
- coreldraw x8段落_CorelDRAW基础设置图文教程,教你CDR X8设置文字为默认字体
CorelDRAW基础设置图文教程,教你CDR X8设置文字为默认字体 CorelDRAW是一款非常出色的文字编排排版软件,对于平面设计三大软件之一,它的功能优势以及应用设计显而易见,对于想要从事平面 ...
- java怎样搞驱动_Java数据库接口JDBC基础教程之驱动设置
DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间.它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接.另外,DriverManager 类也处理诸如驱动程序登录时 ...
- Win10系统Intellij IDEA-2020下载、安装、注册、基础设置,傻瓜教程没手都行
文章目录 前言 下载安装包 安装 注册 基础设置 前言 关于IDEA这个工具这里不多赘述了,会用到这个工具的朋友基本都有一定的基础不是小白,话不多说直接上手动起来. 下载安装包 官网链接:https: ...
- wordpress怎么设置文章页面不打开新的窗口_2019 WordPress外贸网站SEO优化基础设置(新手图文教程)...
做好了网站,选好了主题,配备了必备插件,基础SEO怎么设置才能避免后面经常改动基础设置,导致关键词排名降低,页面收录消失等问题呢? 对于外贸建站老鸟来说,他们装备了插件Yoast SEO的时候,就会把 ...
- 主生产计划 操作教程 用友u8_用友U8:基础设置中的系统启用
本功能用于已安装系统(或模块)的启用,并记录启用日期和启用人.要使用一个产品必须先启用这个产品. 进入系统启用: 用户创建一个新账套后,自动进入系统启用界面,用户可以一气呵成的完成创建账套和系统启用. ...
- Eigen教程1 - 基础
Eigen教程1 - 基础 参考:https://blog.csdn.net/xuezhisdc/article/details/54619853 固定大小的矩阵和向量 /** 参考链接:http:/ ...
- 计算机键盘输入法基础知识,教程计算机基础知识-:认识输入法
教程计算机基础知识-:认识输入法 认识输入法 在任务栏的右边有一个小键盘图标,这就是输入法,默认输入的是英文字母,点击可以选择汉字输入法: 1.切换输入法 1)瞄准任务栏上的小键盘点左键,在出来的菜单 ...
最新文章
- 离职人员防止删除文件域策略
- 固态硬盘坏块修复工具_哪些情况影响固态硬盘寿命 影响固态硬盘寿命症状【详解】...
- 计算SDWebImage缓存大小以及清除
- echarts map
- CentOS系统缺少库文件解决办法
- 【CF453D】 Little Pony and Elements of Harmony(FWT)
- 路径规划之基于插值的规划算法
- 我没钱 如何推广自己的网站
- STL--queue
- live2d手机制作软件_live2d制作器手机版
- 【JavaScript】支持js代码的博客有…
- JSP基本语法(2)函数
- 吴伯凡-认知方法论-矩阵式认知与苏格拉底
- window 10 局域网同步时间(解决错误:This scheduler instance is still active but was recovered by another instanc)
- 人工智能学习——神经网络(matlab+python实现)
- 一文轻松掌握python语言命名规则(规范)
- MySQL执行-SQL执行顺序
- 全新 MacBook Air MGN63CH/A / MGN93CH/A / MGND3CH/A / MGN73CH/A / MGNA3CH / MGNE3CH/A 配置报价图片
- ROS小车应用:控制机器人做圆周运动
- (176)FPGA与门实现门控时钟原理