ORM机制简介

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

2、演示:查看ORM生成的sql语句:
A、使用QuerySet中的query属性
B、配置日志系统,将sql显示到控制台


def hello(request,a):
print(request.get_full_path())
user_list = User.objects.all()
print(user_list.query)
print(locals())
return render_to_response('table.html',locals())


输出内容:
th_user`.`id`, `auth_user`.`password`, `auth_user`.`last_login`, `auth_user`.`is_superuser`, `auth_user`.`username`, `auth_user`.`first_name`, `auth_user`.`last_name`, `au
th_user`.`email`, `auth_user`.`is_staff`, `auth_user`.`is_active`, `auth_user`.`date_joined` FROM `auth_user`
{'a': '123', 'user_list': [<User: admin>], 'request': <WSGIRequest: GET '/hello/'>}
[05/Dec/2017 20:35:07] "GET /hello/ HTTP/1.1" 200 1016


C、使用一些开发工具,django_debug_toolbar

3、ORM优缺点
1、ORM使得我们通过数据库交互变的简单易行,并且完全不用考虑该死的SQL语句,快速开发,由此而来
2、可以避免一些你搜程序猿写sql语句带来的性能和效率问题

缺点:
1、性能有所牺牲。不过现在的各种ORM框架都在尝试使用各种方法来减轻这个问题(LazyLoad,Cache),效果还是很显著的
2、对于个别复杂查询,ORM仍然力不从心。为了 解决这个问题,ORM框架一般也提供了直接原生sql的方式

转载于:https://www.cnblogs.com/kindnull/p/8379772.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值