新聞中心
在開發(fā)的時候發(fā)現(xiàn)Python Django的模板創(chuàng)建表單的做法確實感到有比較大的局限性,不過自定義forms也有比較讓人稱道的地方,在form中我們可以自定義驗證規(guī)則,下面介紹說明一下Python Django的模板的操作。

公司主營業(yè)務:成都網(wǎng)站建設、成都網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出奉節(jié)免費做網(wǎng)站回饋大家。
最復雜功能***大的還是freemarker,支持jsp tag的嵌入讓我們可以重用很多已經(jīng)存在的組件,這一點我在之前的文章中也有過比較詳細的描述(強強聯(lián)手,看freemarker和displaytag的結合)。
由于了解,才有發(fā)言權,Python Django的模板可以說是為互連網(wǎng)應用而誕生的,簡潔及快速開發(fā)的特點讓人情不自禁的喜歡。大多數(shù)模板語言的基本語法都是類似的,比如在freemarker中顯示值是${},而在django是{{}},freemarker中if判斷為<#if>#if>,而django中是:
- {% if msg %}
- Xx
- {% else %}
- Xx
- {% endif%}
再看看在django中渲染模板的方法,有兩種:
- def preparePublish(request):
- t = loader.get_template(publishInfo)
- return HttpResponse(t.render(Context({'categoryList' : None})))
插一句題外話,關于jsp的題外話,不管是ruby,還是c++,還是python,在它們的web框架中都使用了模板,java中也有很多模板,我們最熟悉的是freemarker和velocity。這從一個側面反映出我們web開發(fā)中的一個模式,那就是我們的view基本上是基于模板產生的,而jsp這個東西應該來說是時代的產物,在那個混亂的落后的時代產生的,不過很奇怪的是現(xiàn)在還有這么多人抱著它不放。
Django有兩種form,一種是自己定義form class,還有一種是通過我們定義的model自動form class。 由于ahuaxuan只做 了一個信息發(fā)布的小例子,所以并不能全面的了解或者理解django中form的所有細節(jié),不過從我涉及到的部分來講。
我對Python Django的模板創(chuàng)建表單的做法確實感到有比較大的局限性,因為很多時候,model中的數(shù)據(jù) 并不是從頁面上來的,在這種情況下,form對象被構造出來之后,ahuaxuan還沒有找到修改form中值的方法。
而自定義form類也比較麻煩,就是要寫自己的model,這個和我們之前的做法比較不一樣,這里的form代表我們java中的value object,model是domain object,在我們的ssh框架中我們通常把value object繼承我們的domain object。
雖然一堆又一堆的人提出了反對意見,說要把這兩個對象分開,因為他們處在不同的層次中,但是從實踐經(jīng)驗中,我們可以看到,這樣做沒有什么不好。而在django中自定義form和model分開的行為可能比較符合一些人的心理。 不過自定義forms也有比較讓人稱道的地方,在form中我們可以自定義驗證規(guī)則。
同時我們可以根據(jù)form對象直接生成頁面中的內容,不過這一點其實也有比較麻煩的地方,就是如果要改變樣式的時候就比較麻煩,不過總的來說Python Django的模板的form還是比較有特點的,而且一定程度上給我們帶來了方面。
網(wǎng)頁題目:對PythonDjango的模板操作說明
文章網(wǎng)址:http://fisionsoft.com.cn/article/ccesjgc.html


咨詢
建站咨詢
