日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
設(shè)計Python目標(biāo)何在?

開發(fā)人員首先在進(jìn)行對Python開發(fā)時,有一個明確的目標(biāo),所謂Python目標(biāo)為:Python可以使用戶避免過分的語法的羈絆而將精力主要集中到所要實(shí)現(xiàn)的程序任務(wù)上。

如果有人問我最喜歡django什么,我會耗不猶豫的告訴你是django的orm,這個想法的產(chǎn)生完全來自于我長時間來積累的對hibernate的“不滿”。雖然從理智的角度來看,hibernate做的是非常的正確的,因?yàn)樗⒉皇侵会槍ミB網(wǎng)而產(chǎn)生的,它的主要市場應(yīng)該還是在企業(yè)應(yīng)用上。

不過把它用在互聯(lián)網(wǎng)并非不可以,只不過大家更多的時候會選擇ibatis之類,因?yàn)椴恢纇ibernate的人總是會說hibernate沒有ibatis快(其實(shí)我最煩這個,片面的比較是沒有意義的)。正是Python目標(biāo)是打造成java界一個全方位,全能的orm框架,所以的它學(xué)習(xí)曲線和使用的復(fù)雜度日益的提升。

要完全掌握好hibernate不是一件容易的事情(不要告訴我你會點(diǎn)crud,知道點(diǎn)lazy load你就掌握好hibernate了)。再回頭來看django的orm,如果說要把hibernate說清楚需要800頁的書,那么要把django的orm說清楚,200頁就夠了(事實(shí)上它的官方文檔只有十幾頁的樣子)。

下面我舉一個我正在做的例子,這里有一個自關(guān)聯(lián)的對象(事實(shí)上django的orm是基于model,這點(diǎn)和ror不太一樣,有人跟我講過ror是數(shù)據(jù)庫驅(qū)動),這個對象有一個父對象,通常我們的菜單會定義成這樣的對象,這樣的菜單可以無限級向下擴(kuò)展:

 
 
 
  1. class Category(models.Model):   
  2.     id = models.AutoField('id', primary_key=True)   
  3.     name = models.CharField(maxlength=50)   
  4.     code = models.CharField(maxlength=50)   
  5.     parentCategory = models.ForeignKey('self', 'id', null=True)   
  6.     enable = models.BooleanField()   
  7.        
  8.     def __str__(self):   
  9.         return self.name   
  10.        
  11.     class Admin:   
  12.         list_display = ('id', 'name', 'code', 'parentCategory')  

Python目標(biāo)中又定義的Admin是為django的Admin模塊服務(wù)的。 瞧,我們定義的域模型只需要這些代碼就夠了,models.Model是父對象。所有的model對象都需要繼承這個對象,這個對象提供了很多常用的數(shù)據(jù)庫方法,不過不是基于sql的,還是基于對象的,如同Criteria一樣。下面列出常用的一些查詢Category的方法。

當(dāng)然django的orm提供了很多很常用的功能,這里不一一舉例了,注意,這里我說的是提供了很多很常用的功能,至于hibenate中比較復(fù)雜的映射策略,在django中我并沒有看到。

但是我反而高興我沒有在django中找到這個功能,因?yàn)閐jango本身的定位是快速的互連網(wǎng)開發(fā),它不需要太多的關(guān)注這個領(lǐng)域很少出現(xiàn)的東西,這樣帶來的優(yōu)點(diǎn)是學(xué)習(xí)曲線的降低和開發(fā)效率的提高。


分享文章:設(shè)計Python目標(biāo)何在?
轉(zhuǎn)載來源:http://www.5511xx.com/article/djegoej.html