Django學習--ORM機制詳解

1.定義:
對象關係映射(Object Relational Mapping,簡稱ORM),用於實現面向對象編程語言裏不一樣類型系統的數據之間的轉換。 換句話說,就是用面對對象的方式去操做數據庫的建立表,增,刪,改,查等操做。
類名對應------》數據庫中的表名

類屬性對應---------》數據庫裏的字段sql

類實例對應---------》數據庫表裏的一行數據數據庫


2.演示:查看ORM生成sql語句
    1)使用QuerySet中的query屬性

    2)配置日誌系統,將sql顯示到控制檯
        只需在settings.py中配置以下logging便可
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}
    3)使用一些開發工具:如django_debug _toolbar

3.ORM優缺點:
    優勢:1)是的咱們的通用數據庫交互變得簡單易行,而且徹底不用考慮該死的SQL語句,快速開發,由此而來。同時也能夠避免一些新手程序猿寫sql語句帶來的性能和效率問題。
               2)Django的orm操做本質上會根據對接的數據庫引擎,翻譯成對應的sql語句;全部使用Django開發的項目無需關心程序底層使用的是MySQL、Oracle、sqlite....,若是數據庫遷移,只須要更換Django的數據庫引擎便可
    缺點:1)性能有所犧牲,不過如今的各類ORM框架都在嘗試使用各類方法來減輕這個問題(LazyLoad,Cache),效果仍是很顯著。
               2)對於個別複雜查詢,ORM仍然力不從心,爲解決這個問題,ORM框架通常也提供直接寫原生sql代碼。


相關文章
相關標籤/搜索