您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中怎么操作 Django,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
在開發(fā)的時(shí)候發(fā)現(xiàn)Python Django的模板創(chuàng)建表單的做法確實(shí)感到有比較大的局限性,不過自定義forms也有比較讓人稱道的地方,在form中我們可以自定義驗(yàn)證規(guī)則,下面介紹說明一下Python Django的模板的操作。
最復(fù)雜功能***大的還是freemarker,支持jsp tag的嵌入讓我們可以重用很多已經(jīng)存在的組件,這一點(diǎn)我在之前的文章中也有過比較詳細(xì)的描述(強(qiáng)強(qiáng)聯(lián)手,看freemarker和displaytag的結(jié)合)。
由于了解,才有發(fā)言權(quán),Python Django的模板可以說是為互連網(wǎng)應(yīng)用而誕生的,簡(jiǎn)潔及快速開發(fā)的特點(diǎn)讓人情不自禁的喜歡。大多數(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})))
插一句題外話,關(guān)于jsp的題外話,不管是ruby,還是c++,還是python,在它們的web框架中都使用了模板,java中也有很多模板,我們最熟悉的是freemarker和velocity。這從一個(gè)側(cè)面反映出我們web開發(fā)中的一個(gè)模式,那就是我們的view基本上是基于模板產(chǎn)生的,而jsp這個(gè)東西應(yīng)該來說是時(shí)代的產(chǎn)物,在那個(gè)混亂的落后的時(shí)代產(chǎn)生的,不過很奇怪的是現(xiàn)在還有這么多人抱著它不放。
Django有兩種form,一種是自己定義form class,還有一種是通過我們定義的model自動(dòng)form class。 由于ahuaxuan只做 了一個(gè)信息發(fā)布的小例子,所以并不能全面的了解或者理解django中form的所有細(xì)節(jié),不過從我涉及到的部分來講。
我對(duì)Python Django的模板創(chuàng)建表單的做法確實(shí)感到有比較大的局限性,因?yàn)楹芏鄷r(shí)候,model中的數(shù)據(jù) 并不是從頁面上來的,在這種情況下,form對(duì)象被構(gòu)造出來之后,ahuaxuan還沒有找到修改form中值的方法。
而自定義form類也比較麻煩,就是要寫自己的model,這個(gè)和我們之前的做法比較不一樣,這里的form代表我們java中的value object,model是domain object,在我們的ssh框架中我們通常把value object繼承我們的domain object。
雖然一堆又一堆的人提出了反對(duì)意見,說要把這兩個(gè)對(duì)象分開,因?yàn)樗麄兲幵诓煌膶哟沃?,但是從?shí)踐經(jīng)驗(yàn)中,我們可以看到,這樣做沒有什么不好。而在django中自定義form和model分開的行為可能比較符合一些人的心理。 不過自定義forms也有比較讓人稱道的地方,在form中我們可以自定義驗(yàn)證規(guī)則。
同時(shí)我們可以根據(jù)form對(duì)象直接生成頁面中的內(nèi)容,不過這一點(diǎn)其實(shí)也有比較麻煩的地方,就是如果要改變樣式的時(shí)候就比較麻煩,不過總的來說Python Django的模板的form還是比較有特點(diǎn)的,而且一定程度上給我們帶來了方面。
上述內(nèi)容就是Python中怎么操作 Django,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。