博客開發簡記(4):博客的個性化配置

先聲明,由於我使用的是djangoblog項目,也就是這個:https://github.com/liangliangyy/DjangoBlog ,所以以下都是基於它的修改。

我的博客不需要太複雜,至少現在不需要,但一些基本的東西是要的,下面就逐一改一下吧。

現在我的博客主打“邏輯思維”,訪問一下: www.freep2p.cn ,大概是這個樣子:
freep2p首頁的原本樣子

然後我要對它進行改造了。

(1)四個tag

我希望看到四個tab:“首頁”、“邏輯測試題”、“趣味題”跟“心理測試題”。如何修改呢?

默認的界面是有一個“歸檔”tag的,把它去掉,找到界面文件 templates/share_layout/nav.html ,:

            <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children">

                <a href="{% url "blog:archives" %}">文章歸檔</a>
            </li>

把這一段註釋或去掉。同時,把“首頁”改名爲我想要的“all”:

<a href="{{ SITE_BASE_URL }}">all</a></li>

然後,對於新增的tag,只需要通過後臺管理(用admin登陸到網站),在“分類”的地方,增加另兩個tab即可。

瀏覽器刷新緩存,請求一下,效果如下(好吧你只看到三個tag,是我截圖的問題):
四個tab的效果

(2)把側邊欄去掉

現在先不要側邊欄,雖然以後有可能加上,怎麼去掉呢?

側邊欄是一個界面,對應的html是: templates/blog/tags/siderbar.html ,邏輯上,一定是加載了這個html,那不加載它就好啦。

blog/templatetags/blog_tags.py,這個文件涉及到tags,還有側邊欄,留意這句:

@register.inclusion_tag(‘blog/tags/sidebar.html’)

緊接着的函數load_sidebar,是給界面提供數據的,注意,即使不提供數據,只要加載了html,那側邊欄還是會出現。所以,這個地方是提供數據的,不是加載的地方,那在哪裏加載呢?

在“主界面”即templates/share_layout/base.html中,這一段:

		{% block sidebar %}
        {% endblock %}

把這個block去掉,不再加載側邊欄了,效果如下:
沒有側邊欄的效果

(3)去掉底部不必要的信息

同樣在主界面base.html中操作,把下面這句去掉:

{% include ‘share_layout/footer.html’ %}

這時不再顯示footer,效果如下:
沒有footer的效果

(4)統計

對於pv、ip來源等網站訪問信息,我們是感興趣的,於是統計就有必要,但不必自己實現統計了,委託給別人來做也可以,比如使用“百度統計”。搜索“百度統計”,註冊一個統計賬號(之後用它來看數據),登陸頁面如下:

https://tongji.baidu.com/web/welcome/login

登陸之後,“新增網站”,填好信息,確認後生成統計代碼。然後,拷貝統計代碼,在base.html的前面,加入統計代碼。之後,就可以在百度統計後臺查看你的網站數據了。

(5)註冊與登陸

首先,在settings.py中,改爲非debgu狀態,否則激活郵件發不出:

DEBUG = False

可以,我不想使用發送郵件激活的方式,因爲過於麻煩,直接快速註冊賬號即可,如何修改?

瀏覽器以form方式把註冊信息也就是一些變量值提交給nginx,nginx解釋表單,然後初始化各個input的變量值,再調用python解釋器來執行python代碼並傳入變量值。所以關鍵是,處理註冊信息的python代碼是哪個呢,它會提示email重複之類的動作,也發送激活郵件等動作。

accounts/urls.py,這個文件,指定了不同頁面請求下,調用哪個python處理代碼,對於“註冊”,調用的是accounts/views.py文件中的RegisterView。

RegisterView.form_valid處理提交的註冊信息,把user置爲未激活狀態,再發送激活郵件,然後跳轉到‘result’頁面,提示已經發送激活郵件。

對於激活鏈接,大概是這樣的:

http://www.freep2p.cn/account/result.html?type=validation&id=9&sign=5862756866a59c3be805cfc80660baca

RegisterView.form_valid,以及在請求激活鏈接時,都將調用到views.py中的account_result,此函數返回註冊結果頁面,比如成功或提示郵箱激活等。

修改辦法:

  • RegisterView.form_valid不發送激活郵件,仍跳轉到’result’頁面,但只提示“註冊成功”。
  • RegisterView.form_valid跳轉到’result’頁面使用的參數type值改爲validation,再加上sign參數。

templates/account下面的文件,比如registration_form.html、login.html以及result.html,就是界面了,你可以修改一下,至少文字要改成中文吧。對於input控件,出現在accounts/forms.py文件,你可以把提示改成中文。

最後,接收錯誤信息的郵箱也應修改成你自己的,在settings.py中如下修改,注意要在supervisor配置中添加環境變量(上節有介紹):

EMAIL_HOST = ‘smtp.126.com’
EMAIL_PORT = 587
EMAIL_HOST_USER = os.environ.get(‘DJANGO_EMAIL_USER’)
EMAIL_HOST_PASSWORD = os.environ.get(‘DJANGO_EMAIL_PASSWORD’)
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = os.environ.get(‘DJANGO_EMAIL_USER’)

(6)調整側邊欄

最終發現,有個側邊欄會方便很多,比如可以退出登陸,但要減少一些內容,怎麼處理?

還是它的界面:templates/blog/tags/siderbar.html,在裏面改一下,達到你想要的效果唄。

(7)上傳圖片

在編輯文章時上傳圖片,再正常不過的要求。djangoblog允許上傳文件到服務器,但要注意,在settings.py的最後面是這兩行:

MEDIA_ROOT = os.path.join(SITE_ROOT, ‘uploads’)
MEDIA_URL = ‘/media/’

上傳到uploads/editor/目錄,那請求也要從uploads目錄獲取,要把第二行的’media’改成’uploads’。

(8)讓百度收錄你的網站

爲了讓別人在baidu搜索時能看到你的網站,你可以主動給百度提供你的網站,地址:

https://ziyuan.baidu.com/linksubmit/url

提交你的網站首頁即可。


最終,我的博客( www.freep2p.cn )是這個樣子的:
freep2p

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章