flat這個免費主題首頁的view做成了之後,想來做其它page的view。
因為首頁有明顯的index.html,其它page的html檔案是怎麼一回事呢。
底下以thank和身價不凡兩個page為例
- 首先,觀察網址,不論是中文或是英文的page名稱,都會掛在網址後面。這個和django一樣,就是url的pattern。
url(r"^thank/$", views.page, {"slug": "/thank"}, name="thank"),
url(r"^身價不凡/$",views.page,{"slug":"/身價不凡"},name="身價不凡"),
url(r"^身價不凡/$",views.page,{"slug":"/身價不凡"},name="身價不凡"),
- 接著要編輯html檔
- 你可以新建一個同名的html,mezzanine會優先使用,但是就無法在admin中管理。
- 如果沒有同名的html,mezzanine一律使用pages\page.html來產生各page的html檔(使用者不會看到),你可以在admin中編輯,還可以在page.html中,加入新的元素,例如,接受自己的view傳來的變數。如下藍字是新插入的,由view傳來的變數。page.html中不可以加入文字,那樣會讓每一個page都出現,除非你就是想那樣。
{% block main %}
{{today}}{{arrivaltime}}
{% endblock %}
{{today}}{{arrivaltime}}
{% endblock %}
例一:建身價不凡.html(和page.html放在同一目錄)
<!doctype.html>
<html>
<head>
<title>
</title>
</head>
<body>
<img src="..\..\static\images\car.jpg" >
</body>
</html>
<html>
<head>
<title>
</title>
</head>
<body>
<img src="..\..\static\images\car.jpg" >
</body>
</html>
結果,已經不是原來的網頁了。當然你就可以自由的編輯,至於如何引入view,請往下看。
以下和例二相同,只是為了測試中文的url pattern是否可行。
- 先把身價不凡.html移走,使用mezzanine的page。
- 在url.py中加入路徑
url(r"^身價不凡/$",views.page,{"slug":"身價不凡"},name="身價不凡"),
- 在page_processors.py中加入裝飾器
def welcome(request,page):
hitime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())+" 身價不凡"
hitime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())+" 身價不凡"
return locals()
- 在page.html中加入裝飾器中的變數(藍字部份)(p.s.{{arrivaltime}}是例二中所使用,如果沒作用,就不會顯示)
{% block main %}
{{arrivaltime}}{{hitime}}
{% endblock %}
{{arrivaltime}}{{hitime}}
{% endblock %}
結果:在原來的網頁開頭,加進了時間變數
例二:使用mezzanine內建的page,如上面說明中,在page.html插入藍字部份
{% block main %}
{{arrivaltime}}
{% endblock %}
{{arrivaltime}}
{% endblock %}
在page_processors.py中加入以下的view程式
from mezzanine.pages.page_processors import processor_for
import time
import time
@processor_for("thank")
def welcome(request,page):
arrivaltime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return locals()
def welcome(request,page):
arrivaltime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return locals()
結果,星號的上方多了日期和時間。
沒有留言:
張貼留言