django模型方法extra

2022-08-31 12:39:10 字數 1223 閱讀 7297

#

# select提供簡單資料

#person.objects.all().extra(select=) # 加在select後面

## where提供查詢條件

#person.objects.all().extra(where=["

first||last ilike 'jeffrey%'

"]) # 加乙個where條件

## table連線其它表

#book.objects.all().extra(table=['

'], where=['

last = author_last

']) # 加from後面

## params添引數

#!! 錯誤的方式 !!

first_name = '

joe'

#如果first_name中有sql特定字元就會出現漏洞

person.objects.all().extra(where=["

first = '%s'

" %first_name])

#正確方式

person.objects.all().extra(where=["

first = '%s'

"], params=[first_name])

extra原始碼

def extra(self, select=none, where=none, params=none, tables=none,

order_by=none, select_params=none):

"""adds extra sql fragments to the query.

"""assert

self.query.can_filter(), \

"cannot change a query once a slice has been taken

"clone =self._clone()

clone.query.add_extra(select, select_params, where, params, tables, order_by)

return clone

原文:

#相關子查詢,而且只能select乙個值(a.id),否則報錯:當沒有用 exists 引入子查詢時,在選擇列表中只能指定乙個表示式

innermail.objects.extra(select=)

django查詢中extra的應用

今天有個需求需要查詢到資料庫resc metadata欄位 是乙個json型別的值 中job group去重後的值放入乙個列表 一 通過pymysql完成def set cluster id value data,hirer,resc dict db mysqldb.connect sqlconf ...

Django 教程 Django 模型

乙個django模組是內建的功能,django使用建立表,他們的田地,和各種約束。簡而言之,django models是與django一起使用的sql資料庫。sql 結構化查詢語言 很複雜,涉及許多不同的查詢,用於建立,刪除,更新或與資料庫有關的任何其他內容。django模型簡化了任務並將表組織到模...

Django 模型層 模型

django內建模型方法 乙個模型包含了資料的字段和操作方法,每個模型對映為一張資料庫中的表 person models.py from django.db import models class person models.model first name models.charfield max...