導航:首頁 > 凈水問答 > django過濾器list

django過濾器list

發布時間:2022-02-17 14:45:11

⑴ django model的get和filter方法的區別

django的get和filter方法是django model常用到的,搞清楚兩者的區別非常重要。

為了說明它們兩者的區別定義2個models

class Student(models.Model):
name = models.CharField('姓名', max_length=20, default='')
age = models.CharField('年齡', max_length=20, default='')

class Book(models.Model):
student = models.ForeignKey(Student)

一.先說下django的get方法:

1django的get方法是從資料庫的取得一個匹配的結果,返回一個對象,如果記錄不存在的話,它會報錯。
比如我資料庫里有一條記錄,記錄的name的值是"Python"的話,我用student = Student.objects.get(name='老王python'),
返回的是一個記錄對象,你可以通過student.__dict__來查看,它返回的是一個字典的形式,{'key':valeus},key是欄位的名稱,而values是值的內容。
而如果我用get方法來查詢一個資料庫里不存在的記錄,程序會報錯。
比如:student = Student.objects.get(name='老王'),你自己可以運行看下。

2如果你用django的get去取得關聯表的數據的話,而關鍵表的數據如果多於2條的話也會報錯。
比如我的student表裡有一個記錄:
id name age
1 python 24

book表:

id student_id
1 1
2 1

我用
student = Student.objects.get(name='python')
book = Book.objects.get(student)
它也會報錯,因為book表有2條記錄和student表相匹配。

二.再說下django filter:

1django的filter方法是從資料庫的取得匹配的結果,返回一個對象列表,如果記錄不存在的話,它會返回[]。
比如我資料庫里有一條記錄,記錄的name的值是Python的話,我用student = Student.objects.filter(name='老王python')
它返回的student是一個對象的列表,可以看的出來student[0]和上面的get方式返回的student的結果是一樣的。

⑵ python django 怎麼把數據查詢結果保存到一個list裡面

1、新建一個JUPYTER NOTEBOOK文檔。

⑶ 描述Django中的中間件執行原理,如何自定義一個過濾返回的中間鍵。

⑷ Django的orm中get和filter的不同

首先對比下兩個函數文檔上的解釋。
get
Returns the object matching the given lookup parameters, which should be in the format described in Field lookups.
get() raises MultipleObjectsReturned if more than one object was found. The MultipleObjectsReturned exception is an attribute of the model class.
get() raises a DoesNotExist exception if an object wasn』t found for the given parameters. This exception is also an attribute of the model class
filter
Returns a new QuerySet containing objects that do not match the given lookup parameters.
The lookup parameters (**kwargs) should be in the format described in Field lookups below. Multiple parameters are joined via AND in the underlying SQL statement, and the whole thing is enclosed in a NOT().
輸入參數
get 的參數只能是model中定義的那些欄位,只支持嚴格匹配
filter 的參數可以是欄位,也可以是擴展的where查詢關鍵字,如in,like等
返回值
get 返回值是一個定義的model對象
filter 返回值是一個新的QuerySet對象,然後可以對QuerySet在進行查詢返回新的QuerySet對象,支持鏈式操作
QuerySet一個集合對象,可使用迭代或者遍歷,切片等,但是不等於list類型(使用一定要注意)
異常
get 只有一條記錄返回的時候才正常,也就說明get的查詢欄位必須是主鍵或者唯一約束的欄位。當返回多條記錄或者是沒有找到記錄的時候都會拋出異常
filter 有沒有匹配的記錄都可以

⑸ Django多條件篩選

你在循環category 時,沒有提供car的值,在循環car的時候沒有提供category 的值,那當然在構成a標簽的href屬性的時候必然會缺少一個參數值。按你的邏輯來講應該使用嵌套循環,如下:

{% for categoryin all_category%}

{% for car in car_brands %}

<a href="?car={{ car.id }}&item={{ category.id }}"><span>{{ car.car_name }}</a>

{% endfor %}

{% endfor %}
{% for proct in all_procts.object_list %}
<!--產品信息顯示-->
{% endfor%}

最後推薦一個非常棒的免費DJango教程劉江的Django教程

⑹ 求助Django模板中使用list的問題

看了半天才明白了樓主的意思

樓主是希望解析出的帶html標簽的字元串,直接被解析輸出而不是被當成文本輸出吧

查了下文檔,試試這個看看呢
{{testcase | safe}}

safe
Marks a string as not requiring further HTML escaping prior to output. When autoescaping is off, this filter has no effect.

⑺ django模塊不能用for i in range(0, 5)總報錯

我覺得你的目的很簡單,就是想在模版中簡單執行5次循環。可以使用make_list過濾器:

{%foriin'12345'|make_list%}
{{i}}
{%endfor%}

如果覺得這樣有局限性,可以寫一個簡單的自定義過濾器:

@register.filter('list')
defdo_list(value):
returnrange(1,value+1)

然後這樣使用:

{%foriin5|list%}
{{i}}
{%endfor%}

如果你已經在視圖中定義了好了一個變數,而只想執行5次,那麼可以這樣子:

{%foriinexample|slice:":5"%}
{{i}}
{%endfor%}

⑻ django中的orm中怎麼對篩選結果去重

版權歸作者所有,任何形式轉載請聯系作者。
作者:petanne(來自豆瓣)
來源:https://www.douban.com/note/301166150/

1.多表連接查詢:感覺django太NX了。
class A(models.Model):
name = models.CharField(u'名稱')
class B(models.Model):
aa = models.ForeignKey(A)
B.objects.filter(aa__name__contains='searchtitle')

1.5 反向查詢,補上記錄1.5,感覺django太太太NX了。
class A(models.Model):
name = models.CharField(u'名稱')
class B(models.Model):
aa = models.ForeignKey(A,related_name="FAN")
bb = models.CharField(u'名稱')
查A: A.objects.filter(FAN__bb='XXXX'),都知道related_name的作用,A.FAN.all()是一組以A為外鍵的B實例,可前面這樣的用法是查詢出所有(B.aa=A且B.bb=XXXX)的A實例,然後還可以通過__各種關系查找,很好用!!!

2.條件選取querySet的時候,filter表示=,exclude表示!=。
querySet.distinct() 去重復
__exact 精確等於 like 'aaa'
__iexact 精確等於 忽略大小寫 ilike 'aaa'
__contains 包含 like '%aaa%'
__icontains 包含 忽略大小寫 ilike '%aaa%',但是對於sqlite來說,contains的作用效果等同於icontains。
__gt 大於
__gte 大於等於
__lt 小於
__lte 小於等於
__in 存在於一個list范圍內
__startswith 以...開頭
__istartswith 以...開頭 忽略大小寫
__endswith 以...結尾
__iendswith 以...結尾,忽略大小寫
__range 在...范圍內
__year 日期欄位的年份
__month 日期欄位的月份
__day 日期欄位的日
__isnull=True/False

⑼ 如何在Django管理外鍵過濾器list

將 list_filter 中的外鍵欄位改為 foreign_key__related_fieldname 這種形式就可以了。 這種用法專適用於屬 ForeignKey 及 ManyToManyField 。

⑽ django 過濾器 什麼意思

關於django過濾器,
過濾器,變數的顯示形式的改變
一、形式:小寫
{{ name | lower }}
二、串聯:先轉義文本到HTML,再轉換每行到 <p> 標簽
{{ my_text|escape|linebreaks }}
三、過濾器的參數
顯示前30個字
{{ bio | truncatewords:"30" }}
格式化
{{ pub_date | date:"F j, Y" }}
過濾器列表
{{ 123|add:"5" }} 給value加上一個數值
{{ "AB'CD"|addslashes }} 單引號加上轉義號,一般用於輸出到javascript中
{{ "abcd"|capfirst }} 第一個字母大寫
{{ "abcd"|center:"50" }} 輸出指定長度的字元串,並把值對中
{{ "123spam456spam789"|cut:"spam" }} 查找刪除指定字元串
{{ value|date:"F j, Y" }} 格式化日期
{{ value|default:"(N/A)" }} 值不存在,使用指定值
{{ value|default_if_none:"(N/A)" }} 值是None,使用指定值
{{ 列表變數|dictsort:"數字" }} 排序從小到大
{{ 列表變數|dictsortreversed:"數字" }} 排序從大到小
{% if 92|divisibleby:"2" %} 判斷是否整除指定數字

{{ string|escape }} 轉換為html實體
{{ 21984124|filesizeformat }} 以1024為基數,計算最大值,保留1位小數,增加可讀性
{{ list|first }} 返回列表第一個元素
{{ "ik23hr&jqwh"|fix_ampersands }} &轉為&
{{ 13.414121241|floatformat }} 保留1位小數,可為負數,幾種形式
{{ 13.414121241|floatformat:"2" }} 保留2位小數
{{ 23456 |get_digit:"1" }} 從個位數開始截取指定位置的1個數字

{{ list|join:", " }} 用指定分隔符連接列表
{{ list|length }} 返回列表個數
{% if 列表|length_is:"3" %} 列表個數是否指定數值
{{ "ABCD"|linebreaks }} 用新行用<p> 、 <br /> 標記包裹
{{ "ABCD"|linebreaksbr }} 用新行用<br /> 標記包裹
{{ 變數|linenumbers }} 為變數中每一行加上行號
{{ "abcd"|ljust:"50" }} 把字元串在指定寬度中對左,其它用空格填充

{{ "ABCD"|lower }} 小寫
{% for i in "1abc1"|make_list %}ABCDE,{% endfor %} 把字元串或數字的字元個數作為一個列表
{{ "abcdefghijklmnopqrstuvwxyz"|phone2numeric }} 把字元轉為可以對應的數字??
{{ 列表或數字|pluralize }} 單詞的復數形式,如列表字元串個數大於1,返回s,否則返回空串

{{ 列表或數字|pluralize:"es" }} 指定es
{{ 列表或數字|pluralize:"y,ies" }} 指定ies替換為y
{{ object|pprint }} 顯示一個對象的值
{{ 列表|random }} 返回列表的隨機一項
{{ string|removetags:"br p div" }} 刪除字元串中指定html標記
{{ string|rjust:"50" }} 把字元串在指定寬度中對右,其它用空格填充

{{ 列表|slice:":2" }} 切片
{{ string|slugify }} 字元串中留下減號和下劃線,其它符號刪除,空格用減號替換
{{ 3|stringformat:"02i" }} 字元串格式,使用Python的字元串格式語法
{{ "E<A>A</A>B<C>C</C>D"|striptags }} 剝去[X]HTML語法標記
{{ 時間變數|time:"P" }} 日期的時間部分格式
{{ datetime|timesince }} 給定日期到現在過去了多少時間
{{ datetime|timesince:"other_datetime" }} 兩日期間過去了多少時間

{{ datetime|timeuntil }} 給定日期到現在過去了多少時間,與上面的區別在於2日期的前後位置。
{{ datetime|timeuntil:"other_datetime" }} 兩日期間過去了多少時間
{{ "abdsadf"|title }} 首字母大寫
{{ "A B C D E F"|truncatewords:"3" }} 截取指定個數的單詞
{{ "<a>1<a>1<a>1</a></a></a>22<a>1</a>"|truncatewords_html:"2" }} 截取指定個數的html標記,並補完整
<ul>{{ list|unordered_list }}</ul> 多重嵌套列表展現為html的無序列表

{{ string|upper }} 全部大寫
<a href="{{ link|urlencode }}">linkage</a> url編碼
{{ string|urlize }} 將URLs由純文本變為可點擊的鏈接。(沒有實驗成功)
{{ string|urlizetrunc:"30" }} 同上,多個截取字元數。(同樣沒有實驗成功)

{{ "B C D E F"|wordcount }} 單詞數
{{ "a b c d e f g h i j k"|wordwrap:"5" }} 每指定數量的字元就插入回車符
{{ boolean|yesno:"Yes,No,Perhaps" }} 對三種值的返回字元串,對應是 非空,空,None

閱讀全文

與django過濾器list相關的資料

熱點內容
液相用溶劑過濾器 瀏覽:674
納濾水導電率 瀏覽:128
反滲透每小時2噸 瀏覽:162
做一個純凈水工廠需要多少錢 瀏覽:381
最終幻想4回憶技能有什麼用 瀏覽:487
污水提升器采通 瀏覽:397
反滲透和不發滲透凈水器有什麼區別 瀏覽:757
提升泵的揚程 瀏覽:294
澤德提升泵合肥經銷商 瀏覽:929
飲水機後蓋漏水了怎麼辦 瀏覽:953
小型電動提升器 瀏覽:246
半透膜和細胞膜區別 瀏覽:187
廢水拖把池 瀏覽:859
十四五期間城鎮污水處理如何提質增效 瀏覽:915
怎麼測試空氣凈化器的好壞 瀏覽:519
提升泵是幹嘛的 瀏覽:744
布油做蒸餾起沫咋辦 瀏覽:252
廣州工業油煙凈化器一般多少錢 瀏覽:204
喜哆哆空氣凈化器效果怎麼樣 瀏覽:424
油煙凈化器油盒在什麼位置 瀏覽:582