zoukankan      html  css  js  c++  java
  • 初步学习Django-第五篇:ORM详解

    1.定义:
    对象关系映射(Object Relational Mapping,简称ORM),用于实现面向对象编程语言里不同类型系统的数据之间的转换。换句话说,就是用面对对象的方式去操作数据库的创建表,增,删,改,查等操作。
    类名对应------》数据库中的表名

    类属性对应---------》数据库里的字段

    类实例对应---------》数据库表里的一行数据

     
    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',
            },
        }
    }
     
     
    1
    LOGGING = {
    2
        'version': 1,
    3
        'disable_existing_loggers': False,
    4
        'handlers': {
    5
            'console':{
    6
                'level':'DEBUG',
    7
                'class':'logging.StreamHandler',
    8
            },
    9
        },
    10
        'loggers': {
    11
            'django.db.backends': {
    12
                'handlers': ['console'],
    13
                'propagate': True,
    14
                'level':'DEBUG',
    15
            },
    16
        }
    17
    }
        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代码。
  • 相关阅读:
    JSTLView快速国际化(SpringMVC)
    SprngMVC源码学习
    请求数据传入(SpringMVC)
    @ModelAttribute注解(SpringMVC)
    SpringMVC-RESTRUL___CRUD知识点总结
    SpringMVC视图解析器概述
    Spring
    英文单词
    关于陌生的依赖模块,如withStyles、react-apollo等
    React项目中那些奇怪的写法
  • 原文地址:https://www.cnblogs.com/hcyjjp/p/10417766.html
Copyright © 2011-2022 走看看