今天就跟大家聊聊有關(guān)ORM是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
MVC或者M(jìn)VC框架中包括一個重要的部分,就是ORM,它實現(xiàn)了數(shù)據(jù)模型與數(shù)據(jù)庫的解耦,即數(shù)據(jù)模型的設(shè)計不需要依賴于特定的數(shù)據(jù)庫,通過簡單的配置就可以輕松更換數(shù)據(jù)庫,這極大的減輕了開發(fā)人員的工作量,不需要面對因數(shù)據(jù)庫變更而導(dǎo)致的無效勞動
ORM是“對象-關(guān)系-映射”的簡稱。(ObjectRelationalMapping,簡稱ORM)(將來會學(xué)一個sqlalchemy,是和他很像的,但是django的orm沒有獨立出來讓別人去使用,雖然功能比sqlalchemy更強(qiáng)大,但是別人用不了)
類對象--->sql--->pymysql--->mysql服務(wù)端--->磁盤,orm其實就是將類對象的語法翻譯成sql語句的一個引擎,明白o(hù)rm是什么了,剩下的就是怎么使用orm,怎么來寫類對象關(guān)系語句。
創(chuàng)建模型
接下來要創(chuàng)建對應(yīng)的數(shù)據(jù),連接上對應(yīng)的數(shù)據(jù)庫,然后執(zhí)行創(chuàng)建表的命令,翻譯成相應(yīng)的sql,然后到數(shù)據(jù)庫里面執(zhí)行,從而創(chuàng)建對應(yīng)的表。多了一步orm翻譯成sql的過程,效率低了,但是沒有太大的損傷,還能忍受,當(dāng)你不能忍的時候,你可以自己寫原生sql語句,一般的場景orm都夠用了,開發(fā)起來速度更快,寫法更貼近應(yīng)用程序開發(fā),還有一點就是數(shù)據(jù)庫升級或者變更,那么你之前用sql語句寫的數(shù)據(jù)庫操作,那么就需要將sql語句全部修改,但是如果你用orm,就不需要擔(dān)心這個問題,不管是你從mysql變更到oracle還是從oracle更換到mysql,你如果用的是orm來搞的,你只需要修改一下orm的引擎(配置文件里面改一些配置就搞定)就可以了,你之前寫的那些orm語句還是會自動翻譯成對應(yīng)數(shù)據(jù)庫的sql語句。
更多字段和參數(shù)
每個字段有一些特有的參數(shù),例如,CharField需要max_length參數(shù)來指定VARCHAR數(shù)據(jù)庫字段的大小。還有一些適用于所有字段的通用參數(shù)。這些參數(shù)在文檔中有詳細(xì)定義。
看完上述內(nèi)容,你們對ORM是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。