草庐IT

Micro-ORM

全部标签

python - 在 django ORM 中何时使用或不使用 iterator()

这是来自djangodocsonthequerysetiterator()method:AQuerySettypicallycachesitsresultsinternallysothatrepeatedevaluationsdonotresultinadditionalqueries.Incontrast,iterator()willreadresultsdirectly,withoutdoinganycachingattheQuerySetlevel(internally,thedefaultiteratorcallsiterator()andcachesthereturnvalu

python - Django ORM : Selecting related set

假设我有2个模型:classPoll(models.Model):category=models.CharField(u"Category",max_length=64)[...]classChoice(models.Model):poll=models.ForeignKey(Poll)[...]给定一个Poll对象,我可以查询它的选择:poll.choice_set.all()但是,是否有一个实用函数可以从一组Poll中查询所有选项?实际上,我正在寻找类似以下的东西(不支持,我也不寻求它是如何实现的):polls=Poll.objects.filter(category='foo')

python - 如何验证 SQLAlchemy ORM 中的列数据类型?

使用SQLAlchemyORM,我想确保值是其列的正确类型。例如,假设我有一个整数列。我尝试插入值“hello”,它不是一个有效的整数。SQLAlchemy将允许我这样做。只有稍后,当我执行session.commit()时,它会引发异常:sqlalchemy.exc.DataError:(DataError)invalidinputsyntaxinteger:"hello"....我正在添加批量记录,出于性能原因,我不想在每个add(...)之后提交。那我该怎么办:一做session.add(...)就引发异常或者,确保我插入的值可以转换为目标列数据类型,在将其添加到批处理中?或任何

python - Django 的 ORM 有什么限制?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.我听说开发人员不想使用ORM,但不知道为什么。ORM的缺点是什么? 最佳答案 首先,我完全提倡在大多数简单情况下使用ORM。在使用非常简单的(关系)数据模型时,它提供了很多便利。但是,既然你问的是缺点……从概念的角度来看,ORM永远不可能是底层数据模型的有效表示。它充其量只是您数据的近似值-大多数

python - 如何在sqlite django ORM中实现have子句

我已经编写了djangosqliteorm语法来检索特定的记录集:fromdjango.db.models.aggregatesimportCountJobStatus.objects.filter(status='PRF').values_list('job',flat=True).order_by('job').aggregate(Count(status)__gt=3).distinct()但它给了我一个错误,并且这种语法的等效sql对我来说很好。这是我的sql等价物。SELECT*FROMtracker_jobstatusWHEREstatus='PRF'GROUPBYjob_

python - 如何通过 python dict 更新 sqlalchemy orm 对象

字典的键名映射到sqlalchemy对象属性例如:classUser(Base):__tablename__='users'id=Column(Integer,primary_key=True)name=Column(String)fullname=Column(String)password=Column(String)可以从id=3,{name:"diana"}或id=15,{name:"marchel",fullname:"richiemarchel"}更新 最佳答案 您可以使用setattr()动态更新现有SQLAlchem

python - Django 的 ORM 如何在访问外部对象时设法获取它们

现在已经尝试解决这个问题几个小时了,但一无所获。classother(models.Model):user=models.ForeignKey(User)others=other.objects.all()o=others[0]此时,ORM还没有请求o.user对象,但如果我做任何触及该对象的操作,它就会从数据库中加载它。type(o.user)将导致从数据库加载。我想了解的是他们是如何做到这一点的。导致它发生的pythonSprite尘是什么。是的,我查看了源代码,我被难住了。 最佳答案 Django使用metaclass(dja

python - 为什么通过 ORM 加载 SQLAlchemy 对象比通过原始 MySQLdb 游标加载行慢 5-8 倍?

我注意到SQLAlchemy获取(和ORMing)一些数据的速度很慢,而使用裸SQL获取的速度相当快。首先,我创建了一个包含一百万条记录的数据库:mysql>usefoomysql>describeFoo;+-------+---------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------+---------+------+-----+---------+-------+|id|int(11)|NO|PRI|NULL|||A|int(11)|NO||NULL|||B|int(11)|N

python - 标识符规范化 : Why is the micro sign converted into the Greek letter mu?

我只是偶然发现了以下奇怪的情况:>>>classTest:µ='foo'>>>Test.µ'foo'>>>getattr(Test,'µ')Traceback(mostrecentcalllast):File"",line1,ingetattr(Test,'µ')AttributeError:typeobject'Test'hasnoattribute'µ'>>>'µ'.encode(),dir(Test)[-1].encode()(b'\xc2\xb5',b'\xce\xbc')我输入的字符始终是键盘上的µ符号,但由于某种原因它被转换了。为什么会这样? 最

python - 如何在 SQLAlchemy ORM 上实现对同一属性的自引用多对多关系?

我正在尝试使用SQLAlchemy上的声明性来实现自引用多对多关系。关系代表两个用户之间的友谊。在线我发现(在文档和谷歌中)如何建立一个self参照的m2m关系,以某种方式区分角色。这意味着在这种m2m关系中,用户A是,例如,用户B的老板,所以他将他列为“下属”属性或你有什么。以同样的方式,UserB将UserA列在“上级”下。这没有问题,因为我们可以这样声明同一张表的反向引用:subordinates=relationship('User',backref='superiors')当然,“superiors”属性在类中并不显式。无论如何,这是我的问题:如果我想反向引用到我调用反向引用