gpt4 book ai didi

python - Django 的双下划线

转载 作者:太空狗 更新时间:2023-10-29 18:03:21 25 4
gpt4 key购买 nike

在 Django 中,您可以像下面这样进行数据库查询:

Model.objects.filter(name__icontains = 'bob')

问题是:这是如何在“幕后”工作的?双下划线是 Django 的东西还是 Python 的东西?这只是一个名为 name__icontains 的变量,还是某种属性访问语法?在前一种情况下,filter 方法如何解析变量名称以确定您正在搜索 Model 表以查找某处包含 的名称字符串 bob?

最佳答案

这是一个 Django 的东西,用一些 Python 的东西实现。

在 Python 中,您可以获得传递给函数或方法的关键字参数的字典:

>>> def func(*args, **kwargs):
... print(kwargs)
>>> func(a=1, b=2)
{'a': 1, 'b': 2}

从那里,它可以简单地遍历字典键并在 __ 上拆分它们,然后根据需要对其进行解释。在这种情况下,它采用最后一部分并将 icontains 解释为不区分大小写的包含。

关于python - Django 的双下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7451933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com