问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Django中的orm是什么(2023年最新解答)

发布网友 发布时间:2024-09-30 10:43

我来回答

1个回答

热心网友 时间:2024-11-04 17:50

导读:今天首席CTO笔记来给各位分享关于Django中的orm是什么的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Django的orm中get和filter的不同

Django的orm中get和filter的不同

get得到的是一个model对象,filter得到的是一组model对象,类型是queryset,是一个django定义的,可迭代的,可以当作是一个list操作,每个索引都是一个model对象。get如果满足的条件大于一个的时候,会报错#有点类似于如下:get相当与fetchone()filter相当与fetchall()

djangoorm和tornadoorm有什么区别

Tornado是异步框架

Tornado基本上只算有MVC中C这一层,而Django是大而全

所以一般Django适合初学者或者小团队,Tornado适合高度定制。

Django框架是什么?

Django是基于Python的免费和开放源代码Web框架,它遵循模型-模板-视图(MTV)体系结构模式。它由DjangoSoftwareFoundation(DSF)维护,这是一个由非营利组织成立的独立组织。

Django的主要目标是简化复杂的,数据库驱动的网站的创建。该框架强调组件的可重用性和“可插入性”,更少的代码,低耦合,快速开发以及不重复自己的原则。整个过程都使用Python,甚至用于设置文件和数据模型。Django还提供了一个可选的管理创建,读取,更新和删除界面,该界面通过自省动态生成并通过管理模型进行配置。

一些使用Django的知名网站包括公共广播服务,Instagram,Mozilla,华盛顿时报,Disqus,Bitbucket,和Nextdoor。

Django创建于2003年秋天,当时《劳伦斯日报》世界报纸的网络程序员AdrianHolovaty和SimonWillison开始使用Python来构建应用程序。西蒙·威利森(SimonWillison)的实习期结束前不久,雅各布·卡普兰·莫斯(JacobKaplan-Moss)在Django的发展中就被聘用了。它于2005年7月在BSD许可下公开发布。该框架以吉他手DjangoReinhardt的名字命名。2008年6月,宣布新成立的Django软件基金会(DSF)将来将维护Django。

2015年7月,与一些Django联合创始人和开发人员建立联系的软件咨询公司RevolutionSystems在劳伦斯举办了10周年纪念活动。

Django的设计理念如下:

松耦合——Django的目标是使堆栈中的每个元素彼此独立。

更少的编码——更少的代码,因此可以快速开发。

不重复自己(DRY)——一切都应该只在一个地方开发,而不是一次又一次地重复。

快速开发——Django的理念是尽一切可能促进超快速开发。

简洁的设计——Django严格按照自己的代码维护简洁的设计,并易于遵循最佳的Web开发实践。

Django的一些优势如下:

对象关系映射(ORM)支持——Django在数据模型和数据库引擎之间建立了桥梁,并支持包括MySQL,Oracle,Postgres等在内的大量数据库系统。

多语言支持——Django通过其内置的国际化系统支持多语言网站。因此,您可以开发支持多种语言的网站。

框架支持——Django内置了对Ajax,RSS,缓存和其他各种框架的支持。

GUI——Django为管理活动提供了一个很好的即用型用户界面。

开发环境——Django带有轻量级的Web服务器,以促进端到端应用程序的开发和测试。

Django是PythonWeb框架。和大多数现代框架一样,Django支持MVC模式。

关于Python的基础问题可以看下这个网页的视频教程,网页链接,。

djangoorm创建数据表

Django里面,管理数据库和sqlarchemy类似,也是通过orm框架来实现的。所有的数据库的建立,都是在model.py里面通过类来实现的。

首先看看如何创建一个单表:

a.先定义一个类,继承models.Model,然后根据需求定义参数,这些参数的类型和变量后面会进一步阐述

models.py

from?django.db?import?models

class?UserInfo(models.Model):

username?=?models.CharField(max_length=32)

password?=?models.CharField(max_length=64)

b.注册app

settings.py

INSTALLED_APPS?=?[

‘django.contrib.admin‘,

‘django.contrib.auth‘,

‘django.contrib.contenttypes‘,

‘django.contrib.sessions‘,

‘django.contrib.messages‘,

‘django.contrib.staticfiles‘,

‘app01‘,

]

c.执行命令。第一条命令会生成一个初始化文件,第二个命令会生成对应的表

python?manage.py??makemigrations

python?manage.py??migrate

这样,就在PyCharm自带的sqlite数据库里面成功的生成了一个app01_UserInfo的表。这个表默认会有一个自增的id作为主键,另外两个字段是我们通过类创建的。

d.如果希望使用mysql,因为Django默认使用了MySqldb模块,这个在3.0版本里面不存在,会直接报错。我们需要改为pymysql的模块,方法如下:

在project同名文件夹下的__init__文件中添加如下代码即可:

importpymysql

pymysql.install_as_MySQLdb()

2.对于单表的增删改查询

查询

获取所有结果,获取到的结果是一个QuerySet的类似列表的对象,每一个元素本身又是一个对象,包括了id,name,password等属性。

obj?=?models.UserInfo.objects.all()

QuerySet[UserInfo:UserInfoobject,UserInfo:UserInfoobject,UserInfo:UserInfoobject,UserInfo:UserInfoobject,UserInfo:UserInfoobject]

可以通过filter进行过滤,相当于sql的where语句,因为结果也是QuerySet,因此需要再使用first()获取第一个值

obj?=?models.UserInfo.objects.filter(id=nid).first()

增加

models.UserInfo.objects.create(username=u,password=p,user_group_id=3)

删除,可以在filter的基础上进行删除

models.UserInfo.objects.filter(id=nid).delete()

修改,有两种常见方式

第一个方式

models.UserInfo.objects.filter(id=nid).update(username=u,password=p)

第二个方式

obj=models.UserInfo.objects.filter(id=nid)

obj.username=u

obj.save()

如何在django系统外使用django的ORM

sqlalchemy使用上有两个层次,1是使用sqlexpression,说白可以让你用python写sql,2是它的orm,orm是使用session的,自行管理session生存期,自行在多个过程中传递session,自行管理事务。写法上是通常的transactionscript(java常说的贫血的domainmodel)模式。实际编码通常1和2混合编程。

django通过中间件部分隐藏了连接/事务管理的概念,写法上也比较简单,接近java常说的充血的domainmodel.内容上也没有sqlalchemy的sqlexpression层次。易用性就体现出来了。

不过用过的orm中,能达到sqlalchemy这样高度的orm,还没有在其他语言中看到。ruby有sequal,java的jooq都有部分sqlalchemy思想的影子。

结语:以上就是首席CTO笔记为大家整理的关于Django中的orm是什么的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于Django中的orm是什么的相关内容别忘了在本站进行查找喔。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
若cpu一秒执行n次运算需耗能5w,那执行2n次运算要耗能是大于小于还是等于... 大神们,N5G跟N5W哪里不一样? 刚出生的婴儿会感冒吗 刚出生宝宝感冒的症状 怀庄永佳福代理,什么品牌白酒好呢? 做白酒品牌代理,有怀庄永佳福牌子怎么样? 怀庄永佳福白酒喝得人多吗?代理怎么样? 为什么很多女性都把男闺密当作结婚对象? 关于电影“罗生门”的问题 实际利率法是指什么 【2022 年】崔庆才 Python3 爬虫教程 - 关系型数据库 MySQL 存储_百度... LNG气化撬是否需要办理使用登记证 冬奥会 的 简介 二十 字 国内有什么好用靠谱的企业网盘? 怎么把我刚下的QQ飞车从系统里删除 合约机是什么意思 合约机的类型 QQ空间啊屏蔽此类消息怎么恢复呀?上面的回答都是旧版本的QQ空间找不... QQ设置了问题回答不出来,加不上她。 申请访问的地方,发送很多条信息,她... 联通宽带50m是什么意思? 50M联通宽带没光钎的能开直播么。玩电信的服务区会卡么? 是这样的,我的QQ手机通讯录里有手机号码提示说有好友可以加,但是对方需 ... 手机qq。安卓 ...经过几翻斗智斗勇,用纸把它盖住了,后来掀开看发现石 一个qq可以绑定两个微信号吗,求回答 阳澄湖大闸蟹几号开湖 阳澄湖大闸蟹什么时候开湖2024年 阳澄湖大闸蟹上市日期 戴尔笔记本电脑不能关机,关机就会自动开机,是什么问题,急急急 帮忙把“达”和“焕”组建成成语或说说 凉拌苦瓜的做法 凉拌苦瓜怎么做好吃 django执行非法sql如何清空? 我是一名学生,想要报考建筑系,需要什么条件? 塔罗牌,正位宝剑二,逆位国王,正位圣杯九,问前任会不会回来。求解 建筑工程专业职称评定条件有什么要求? django的接口是什么 微博同城会定义 如何套用django后台管理界面? 怎么删除qq聊天记录呢? 梦见蛇头钻我肚子里只剩尾巴还在嘴里 梦见有怪物在我头顶,被我拽住尾巴? Q9550 超频至3.8 核心电压为1.336 电压属于正常电压,能长久吗?_百度知 ... 手机上怎样才能赚到钱 手机上的一张照片只有15k 怎样能把它弄成30k ? 有没有谁知道再生障碍性贫血饮食要有哪些规律啊?以前我总是想吃什么就... 微信漂流瓶扔瓶子没回应很多天了不知道怎么搞得其他一切正常,以前的手 ... 羊尾油的食用方法有哪些? ps钢笔路径描边怎么用? 母兔子要生崽期间受到惊吓会有什么影响 小米10尺寸长宽高多少厘米 - 知百科 兔子的这一行为能说明它是要生崽吗?