使用Django框架怎么实现一个额外的查询功能

  介绍

使用Django框架怎么实现一个额外的查询功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>额外

额外(=没有选择=没有,,,,params=没有   ,,表=None, order_by=没有,select_params=None)

有些情况下,Django的查询语法难以简单的表达复杂的地方子句,对于这种情况,Django提供了额外的()QuerySet修改机制,它能在QuerySet生成的SQL从句中注入新子句。

额外可以指定一个或多个参数,例如选择、或表。这些参数都不是必须的,但是你至少要使用一个!要注意这些额外的方式对不同的数据库引擎可能存在移植性问题。(因为你在显式的书写SQL语句),除非万不得已,尽量避免这样做。

<>强参数之选择

选择参数可以让你在选择从句中添加其他字段信息,它应该是一个字典,存放着属性名到SQL从句的映射。

queryResult=models.Article   .objects.extra(选择={& # 39;is_recent& # 39;:,“create_time 祝辞,& # 39;2018 - 04 - 18 & # 39;“})

结果集中每个条目对象都有一个额外的属性is_recent,它是一个布尔值,表示文章对象的create_time是否晚于2018-04-18。

练习:

#, sqlite:拷贝   article_obj=models.Article.objects才能   .filter=1)(国家免疫日   .extra(选择={“standard_time":“strftime (& # 39; Y - m % % % % % % d # 39;, create_time)“})   . values (“standard_time",“nid",“title")   打印(article_obj)才能   #,才能& lt; QuerySet [{& # 39;标题# 39;:,& # 39;MongoDb 入门教程& # 39;,,& # 39;standard_time& # 39;:, & # 39; 2017 - 09 - 03 & # 39;,, & # 39; nid& # 39;:, 1}]比;

<强>参数之地方/表

您可以使用,定义显式SQL where子句,也许执行非显式连接。您可以使用表手动将表添加到的SQL子句。

和表都接受字符串列表。所有地方参数均为“与”任何其他搜索条件。

练习:

queryResult=models.Article   .objects.extra (=[& # 39; nid 拷贝(1,3),或是title  like “py %“, & # 39;, & # 39; nid> 2 & # 39;])

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

使用Django框架怎么实现一个额外的查询功能