Wagtail 教程 1 :基礎(chǔ)設(shè)置

Wagtail 教程系列 記錄了基于 Wagtail 搭建博客站點(diǎn)的整個(gè)過程哟冬,博客站點(diǎn) 所呈現(xiàn)的即是搭建過程的最新效果。

更多 Wagtail 內(nèi)容:https://slowread.cn/wagtail-tutorials

首先設(shè)置 Wagtail 運(yùn)行環(huán)境

virtualenv

Linux 系統(tǒng)下一般存在多個(gè)版本 Python 環(huán)境弱左,建議采用 virtualenv 創(chuàng)建干凈/獨(dú)立的運(yùn)行環(huán)境廉白。

安裝 virtualenv

sudo pip install virtualenv

Copy

使用默認(rèn)設(shè)置創(chuàng)建虛擬環(huán)境

cd my_project_folder
virtualenv venv

Copy

使用指定的Python解釋器創(chuàng)建虛擬環(huán)境

linux 系統(tǒng)下:

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

virtualenv -p /usr/local/bin/python3 venv

Copy

Windows 系統(tǒng)下:

virtualenv -p python venv

Copy

創(chuàng)建“干凈”的虛擬環(huán)境

virtualenv --no-site-packages venv

Copy

激活虛擬環(huán)境

source ./venv/bin/activate    # linux 系統(tǒng)下

.\venv\Scripts\activate     # Windows 系統(tǒng)下

Copy

退出/停用虛擬環(huán)境

rm -rf /venv

Copy

Wagtail 初始化設(shè)置

虛擬環(huán)境中安裝 wagtail纯露,自動(dòng)安裝依賴包:

(venv) $ pip install wagtail

Copy

創(chuàng)建 wagtail 項(xiàng)目

(venv) $ wagtail start slowread

Copy

整理項(xiàng)目文件目錄欠窒,將 /slowread/slowread/slowread 目錄下所有文件和目錄移動(dòng)到 /slowread/slowread 目錄下,將 /slowread/slowread/manage.py 文件移動(dòng)到 /slowread 目錄下铸屉。

修改 /slowread/manage.py 文件內(nèi)容如下:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "slowread.settings.dev")

    from django.core.management import execute_from_command_line

    current_path = os.path.dirname(os.path.abspath(__file__))
    sys.path.append(os.path.join(current_path, "slowread"))

    execute_from_command_line(sys.argv)

Copy

不修改為上面內(nèi)容的話钉蒲,會(huì)出現(xiàn)找不到 home models 的問題等 。

修改 /slowread/slowread/wsgi.py 文件內(nèi)容如下:

import os
import sys

from 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 文件內(nèi) 語(yǔ)言/時(shí)區(qū)設(shè)置如下:

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

Copy

修改 /slowread/slowread/settings/base.py 文件內(nèi)靜態(tài)/媒體文件位置彻坛,BASE_DIR 改為 PROJECT_DIR顷啼,設(shè)置如下:

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 目錄下帆赢,執(zhí)行標(biāo)準(zhǔn) Django 項(xiàng)目必要設(shè)置步驟:

(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 ,點(diǎn)擊 here , 或者直接打開 http://127.0.0.1:8000/admin/ 线梗,輸入用戶名/密碼椰于,進(jìn)入后臺(tái)管理,左下角 賬號(hào)管理仪搔,語(yǔ)言首選項(xiàng)瘾婿,選擇 中文。

建立第一個(gè) Wagtail 頁(yè)面

編輯 home/templates/home/home_page.html:

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

Copy

打開 http://127.0.0.1:8000 烤咧,第一個(gè)最簡(jiǎn)單的 Wagtail 頁(yè)面出現(xiàn)了偏陪。

擴(kuò)展 HomePage 模型

編輯 home/models.py ,向body模型添加字段:

from django.db import models

from wagtail.core.models import Page
from wagtail.core.fields import RichTextField
from wagtail.admin.edit_handlers import FieldPanel

class HomePage(Page):
    body = RichTextField(blank=True)

    content_panels = Page.content_panels + [
        FieldPanel('body', classname="full"),
    ]

Copy

每次更改模型定時(shí)時(shí)煮嫌,都要運(yùn)行以下命令:

python manage.py makemigrations
python manage.py migrate

或者合并為一行命令:

python manage.py makemigrations && python manage.py migrate

Copy

現(xiàn)在打開 http://127.0.0.1:8000/admin 笛谦,進(jìn)入:

頁(yè)面,Home昌阿,編輯
或者
頁(yè)面饥脑,頁(yè)面(主頁(yè)面),Home懦冰,編輯

對(duì)應(yīng)的操作地址:http://127.0.0.1:8000/admin/pages/ 灶轰, 即頁(yè)面頂部顯示為 Root,鼠標(biāo)放在 Home 行刷钢,然后選擇 編輯笋颤。

可以看到新出現(xiàn)了 BODY 區(qū)域。填寫下面內(nèi)容内地,然后發(fā)布伴澄。

Wellcome to my Wagtail site.

編輯 home/templates/home/home_page.html 更改為以下內(nèi)容:

{% extends "base.html" %}

{% load wagtailcore_tags %}

{% block body_class %}template-homepage{% endblock %}

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

Copy

每個(gè)模板文件都要包含 {% load wagtailcore_tags %},否則 Django 會(huì)提示 TemplateSyntaxError 錯(cuò)誤。

檢查一下設(shè)置區(qū)域中的內(nèi)容:

主機(jī)名:localhost
端口號(hào):80
跟頁(yè)面:Home
是默認(rèn)站點(diǎn):是

保存

打開 http://127.0.0.1:8000 阱缓,查看頁(yè)面內(nèi)容非凌。

站點(diǎn) logo

編輯 /slowread/templates/base.html , 在 <head></head> 之間加入下面內(nèi)容:

<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 目錄下已經(jīng)存在上面的圖標(biāo)文件。修改后茬祷,再次運(yùn)行服務(wù)清焕,可以看到站點(diǎn)新添加的 logo 效果并蝗。

favicon.ico

關(guān)于 Not Found: /favicon.ico 問題解決:

from django.views.generic import RedirectView

urlpatterns = [
    ...
    url(r'^favicon\.ico$',RedirectView.as_view(url='/static/media/favicon.ico')),
    ...
]

更多 Wagtail 內(nèi)容:https://slowread.net/tags/?tag=Wagtail

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末祭犯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子滚停,更是在濱河造成了極大的恐慌沃粗,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件键畴,死亡現(xiàn)場(chǎng)離奇詭異最盅,居然都是意外死亡突雪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門涡贱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咏删,“玉大人,你說(shuō)我怎么就攤上這事问词《胶” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵激挪,是天一觀的道長(zhǎng)辰狡。 經(jīng)常有香客問我,道長(zhǎng)垄分,這世上最難降的妖魔是什么宛篇? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮薄湿,結(jié)果婚禮上叫倍,老公的妹妹穿的比我還像新娘。我一直安慰自己豺瘤,他們只是感情好段标,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著炉奴,像睡著了一般逼庞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞻赶,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天赛糟,我揣著相機(jī)與錄音,去河邊找鬼砸逊。 笑死璧南,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的师逸。 我是一名探鬼主播司倚,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼篓像!你這毒婦竟也來(lái)了动知?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤员辩,失蹤者是張志新(化名)和其女友劉穎盒粮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奠滑,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丹皱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年妒穴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摊崭。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讼油,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呢簸,到底是詐尸還是另有隱情汁讼,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布阔墩,位于F島的核電站嘿架,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏啸箫。R本人自食惡果不足惜耸彪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忘苛。 院中可真熱鬧蝉娜,春花似錦、人聲如沸扎唾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胸遇。三九已至荧呐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纸镊,已是汗流浹背倍阐。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逗威,地道東北人峰搪。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像凯旭,于是被迫代替她去往敵國(guó)和親概耻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容