Mezzanine 搭建 BLOG 系統
1. 建立 python 虛擬環境
-
檢視虛擬環境列表:
conda info --envs
-
建立虛擬環境 mezzenv:
conda create -n mezzenv python=3
- 進入虛擬環境 mezzenv:
source activate mezzenv
2. 安裝 Mezzanine
- pip install mezzanine
3. 新建 mezzblog 專案
-
mezzanine-project mezzblog
-
cd mezzblog
-
python manage.py createdb
- python manage.py runserver 0.0.0.0:8066
4. 後臺管理 Mezzanine 配置
-
訪問
預設賬號:admin
預設密碼:default
-
進入
Content > Pages
配置導航、 頁尾資訊 -
進入
Content > Blog posts
新增分類、釋出文章 - 進入
Site > Settings
配置網站 Site Title、Tagline
5. 透過配置檔案修改模板風格
mezzblog
└── mezzblog
├── __init__.py
├── settings.py
├── local_settings.py
├── urls.py
├── wsgi.py
修改 mezzblog/mezzblog/settings.py
檔案:
-
配置 Homepage 為 Blog:
註釋程式碼:
#url("^$", direct_to_template, {"template": "index.html"}, name="home"),
取消註釋:url("^$", "mezzanine.blog.views.blog_post_list", name="home"),
-
去掉導航欄 Search 輸入框的可選項:
新增配置項:
SEARCH_MODEL_CHOICES = []
-
去掉左側邊連和頁尾:
新增配置項:
PAGE_MENU_TEMPLATES = ( (1, "Top navigation bar", "pages/menus/dropdown.html"), )
Tips: 要完全去掉左側邊連和頁尾,還要修改模板檔案
base.html
。稍後第 8 小節介紹base.html
在哪,以及如何修改
6. 配置 mezzblog 主題樣式
-
在新建中新建一個應用,命名為
theme
:python manage.py startapp theme
-
在
theme
目錄下只保留__init__.py
檔案,其他刪除:mezzblog └── theme ├── __init__.py
-
自定義
theme/static/css/custom.css
樣式檔案,覆蓋預設樣式:mezzblog └── theme ├── __init__.py └── static └── css ├── custom.css
-
將
theme
應用新增到mezzblog/mezzblog/setting.py
:INSTALLED_APPS = ( "theme", "django.contrib.admin", "django.contrib.auth", # ... )
7. 修改 mezzblog 模板佈局
將 Mezzanine 的原始模板彙集到 theme
應用下,覆蓋預設模板:
-
執行
python manage.py collecttemplates
會在專案根目錄生成模板檔案目錄templates
-
將
templates
移動到theme
應用下:mezzblog └── theme ├── __init__.py └── static └── css ├── custom.css └── templates ├── base.html ├── ...
-
去掉左側邊連和頁尾(先在
settings.py
檔案新增相應配置,見第 5 小節):-
刪除
base.html
檔案中的 3 處程式碼:{% page_menu "pages/menus/tree.html" %}{% page_menu "pages/menus/footer.html" %}
-
調整佈局元素寬度,將左邊欄佔據寬度減小,中間正文部分寬增加:
{% block left_panel %} {% endblock %}{% block main %}{% endblock %}Tips: 透過修改
Bootstrap
柵格佈局樣式col-md-*
實現
-
8. 彙集 Mezzanine 靜態檔案
執行 python manage.py collectstatic
命令,將 Mezzanine 原始靜態檔案和自定義的 custom.css
全部複製到 theme
應用下。這樣,可以在專案中重寫靜態資原始檔,方便部署靜態服務。
9. 配置 DEBUG = False
在本地開發時,settings.py
中預設 DEBUG = True
,Django 不會限制訪問來源,並且會自動尋找靜態檔案。
當設定 DEBUG = False
時,可能會產生兩個問題,可以嘗試按以下方式解決:
-
報 Bad Request(400) 錯誤
在
settings.py
配置:ALLOWED_HOSTS = ['*']
-
找不到專案的靜態資原始檔
在
urls.py
加入:from django.views.static import serve as static_serve if settings.DEBUG is False: urlpatterns += [ url(r'^static/(?P
.*)$', static_serve, {'document_root': settings.STATIC_ROOT}), ]
10. 結語
至此,透過 Mezzanine 搭建 Blog 的專案結構基本完成,後續樣式和佈局的修改在 theme
應用下修改即可。
用 Mezzanine 搭建 Blog 對於新手最大的阻礙在弄不清去哪修改模板和樣式,模板和樣式檔案在建立專案時並沒有自動生成。
需要執行以下兩條關鍵命令,在當前專案下生成模板和靜態檔案:
python manage.py collecttemplates
python manage.py collectstatic
注:本人主要從事前端方向開發,剛接觸 Django 不久,以上理解難免有誤。歡迎留言指出~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4369/viewspace-2798943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 個人blog系統
- 太離譜 blog系統
- Gin 搭建 Blog APIsAPI
- Blog的圖床搭建圖床
- go-zero 實戰之 blog 系統Go
- 代購系統代購系統搭建
- 記錄我github的hexo的搭建Blog之路GithubHexo
- 代購系統搭建
- 超詳細 Hexo + GitHub Page 搭建技術 blog 教程HexoGithub
- python搭建系統監控Python
- Linux系統環境搭建Linux
- 如何用虛擬主機搭建一個部落格/blog?
- 基於函式計算快速搭建Django Blog部落格函式Django
- NFT原力星球系統——Coinbase錢包系統(搭建)
- 搭建資料追蹤系統
- 進銷存系統搭建流程
- 使用 ELK 搭建日記系統
- 搭建CRM系統的步驟
- 前端監控系統Sentry搭建前端
- debian 系統伺服器搭建伺服器
- ProTradex模式系統開發搭建模式
- 招投標管理系統搭建
- SpringCloud 商城系統搭建之SleuthSpringGCCloud
- NFT商城系統介紹|NFT模式系統原始碼搭建模式原始碼
- 搭建前端錯誤監控系統前端
- 證券交易系統搭建架構架構
- CentOS7系統搭建SFTP教程。CentOSFTP
- Android 之 MIT積木搭建系統AndroidMIT
- 如何搭建知識付費系統?
- 如何自主搭建資訊管理系統
- 文化媒體系統如何快速搭建
- Windows搭建mac黑蘋果系統WindowsMac蘋果
- 數字醫藥系統搭建|智慧藥房系統原始碼原始碼
- First Blog
- GitHub BLOGGithub
- a new blog
- SSM + easyUI 搭建簡易的人事管理系統 系統概要部分SSMUI
- NFT鏈遊系統開發|NFT矩陣公排系統搭建矩陣