django中ORM的model对象和querryset 简单解析
欢迎大家查看我的博客,我会不定时的用大白话发一些看了就能懂的文章,大家多多支持!如您对此文章内容有独特见解,欢迎与笔者练习一起探讨学习!原创文创!转载请注明出处!
ORM是干嘛的?
介绍orm之前我应该先说一下MVC,MVC简单的说就是一个web框架,那什么是框架?是不是人家给你一个写好的代码模板,你把你要处理的业务逻辑数据直接往里面套用就行了,那是不是可以节省很多的时间啊,django就是基于mvc写的,但是django要比这个强大.
那我再说下orm,平时咱们操作数据库像mysql'怎么操作啊,就是拿mysql举个例子,是有一些图形化软件,鼠标点点的很方便,但是没这些软件,你是不是要在终端里面一条一条敲命令,那你要是在框架里面处理一些复杂的逻辑呢?是不是自己处理起来都蒙圈啊,那是不是处理起来不太方便啊,多以就有了orm了帮你处理你不愿意做的事!
说一下从数据库取出来的querryset和model对象?
` 在这懵逼,我那个时候也是在这懵逼了,后来看了看资料,我擦,豁然开朗!!经验分享给你们,!
先说一下我用mysql演示,随便建两个表格,最好两个表格有点关联!就是外键!这样才能表现的更明显!!
直接上演示原图和解说
下面是我的表格 然后 查询2b的电话,是两个表格!一个是简单的信息,一个是详细信息,这个都不重要,你想怎么建立都行!

你看看图片,那个第一个使用filter取出来的是不是一个querryset 结构你看像什么?又是字典又是键值对的 后面咱们在细说继续看,在加一个first()方法呢,是不是就变成了model对象了,这就是区别!
也就是说我们存在数据库中的数据类型是不变的,int float data str 等等 那这两个数据类型就是orm搞出来的,为了啥?就是为了处理数据方便! 你细细想一想就懂了!
model对象就是一个对象,加.方法就可以调用相关属性! 而querryset 是一种数据结构,你就这么看,什么切片 取值什么的 都可以做,那些方法我就不介绍了!
今天有点晚了 就写到这,希望对你们有帮助!
django中ORM的model对象和querryset 简单解析的更多相关文章
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- Django中ORM的使用
Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...
- 6月20日 Django中ORM介绍和字段、字段参数、相关操作
一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...
- Django中ORM实际应用
1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...
- Django 中ORM 的使用
一:Django 中 orm 的使用 1:手动新建一个数据库 2 :告诉Django连接哪个数据库 settings.py里配置数据库连接信息: #数据库相关的配置项 DATABASES ={ 'de ...
- Django中ORM的聚合索引
Django中ORM的聚合索引 在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典 在使用时需要先导入模块from django.db.mod ...
- Django中ORM创建表关系
一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对 ...
- Django中ORM对数据库的增删改查
Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...
随机推荐
- C语言实现常用排序算法——插入排序
插入排序是最基础的排序算法,原理: 首先1个元素肯定是有序的,所以插入排序从第二个元素开始遍历:内循环首先请求一个空间保存待插入元素,从当前元素向数组起始位置反向遍历:当发现有大于待插入元素的元素,则 ...
- Centos7离线安装mysql8
linux版本:Centois7 mysql版本:5.7 一.安装 1.下载mysql离线安装包 下载地址:https://dev.mysql.com/downloads/mysql/ 选择如下: [ ...
- CTF练习资源大全集
练习CTF清单/永久CTF清单 以下列出了一些长期运行的CTF实践站点和工具或CTF.谢谢,RSnake用于启动这是基于的原始版本.如果您有任何更正或建议,请随时通过dot com tld在域psif ...
- Python文件中将print的输出内容重定向到变量中
有时候需要用到别人的代码, 但是又不想修改别人的文件, 想拿到输出的结果, 这时候就需要使用sys模块, 将print输出的内容重定向到变量中. Python调用sys模块中的sys.stdout, ...
- Ruby字符串(2):String方法详细整理
String方法整理 官方手册 类方法 new new(str="") → new_str new(str="", encoding: enc) → new_s ...
- GRPC Oauth Identity
gRPC中集成asp.net identity实现oAuth认证 在asp.net core 3.0中开启identity认证 asp.net core 3.0种需要导入的identity包与core ...
- 基于SpringBoot从零构建博客网站 - 开发设置主页标识和修改个人信息功能
由于守望博客系统中支持由用户自己设置个人主页的URL的后半段,所以必须要用户设置该标识的功能,而且是用户注册登录之后自动弹出的页面,如果用户没有设置该标识,其它的操作是不能够操作的,同时要求主页标识只 ...
- shell 循环打印某一天后的n天的日期
#!/bin/bash start_date="2017-10-26" for i in `seq 0 30` do num=$((${i}+1)) datatime=`date ...
- 牛逼哄哄的Qt库
目录 一.有价值 - 好的网站 - 好的文章 二.Qt开源库-工具 - QtXlsx--excel读写库 三.Qt开源库-控件 - libqxt编译 - Qwt - QCustomPlot - 其他 ...
- 使Toast弹出不重叠的封装
一.问题 在频繁弹出toast的时候,弹出后出现延迟重叠的现象. 二.解决 Toast通常由makeTextT()方法实例化,如何不想要toast弹出时重叠,那么只需在应用中保持一个Toast对象即可 ...