django中的一些操作

2021-08-31 00:23:30 字數 2197 閱讀 2082

1.有關於對列表的操作:在django的模板語法中,列表可用迴圈的方式遍歷,取出。也可用下標的方式取出:

jieguo = [1,2,3,4]

jieguo.0,jieguo.1....

對於字典形式的陣列:

jieguo1 =  

jieguo.a,jieguo.b....

2.forloop的運用(僅在迴圈中使用):

forloop.counter用於表示迴圈中的迴圈次數,可用於展示標註資訊的序號

forloop.first 判斷是否是迴圈中的第乙個,forloop.last判斷是否是迴圈中的最後乙個,返回值是true或者false,經常用在判斷中:

...

變數 描述

forloop.counter 索引從 1 開始算

forloop.counter0 索引從 0 開始算

forloop.revcounter 索引從最大長度到 1

forloop.revcounter0 索引從最大長度到 0

forloop.first 當遍歷的元素為第一項時為真

forloop.last 當遍歷的元素為最後一項時為真

forloop.parentloop 用在巢狀的 for 迴圈中,獲取上一層 for 迴圈的 forloop

person.objects.all() # 查詢所有

person.objects.all()[:10] 切片操作,獲取10個人,不支援負索引,切片可以節約記憶體,不支援負索引,後面有相應解決辦法,第7條

person.objects.get(name="weizhongtu") # 名稱為 weizhongtu 的一條,多條會報錯

get是用來獲取乙個物件的,如果需要獲取滿足條件的一些人,就要用到filter

person.objects.filter(name="abc") # 等於person.objects.filter(name__exact="abc") 名稱嚴格等於 "abc" 的人

person.objects.filter(name__iexact="abc") # 名稱為 abc 但是不區分大小寫,可以找到 abc, abc, abc,這些都符合條件

person.objects.filter(name__contains="abc") # 名稱中包含 "abc"的人

person.objects.filter(name__icontains="abc") #名稱中包含 "abc",且abc不區分大小寫

person.objects.filter(name__regex="^abc") # 正規表示式查詢

person.objects.filter(name__iregex="^abc")# 正規表示式不區分大小寫

# filter是找出滿足條件的,當然也有排除符合某條件的

person.objects.exclude(name__contains="wz") # 排除包含 wz 的person物件

person.objects.filter(name__contains="abc").exclude(age=23) # 找出名稱含有abc, 但是排除年齡是23歲的

queryset 不支援負索引

person.objects.all()[:10] 切片操作,前10條

person.objects.all()[-10:] 會報錯!!!

# 1. 使用 reverse() 解決

person.objects.all().reverse()[:2] # 最後兩條

person.objects.all().reverse()[0] # 最後一條

# 2. 使用 order_by,在欄目名(column name)前加乙個負號

author.objects.order_by('-id')[:20] # id最大的20條

queryset 重複的問題,使用 .distinct() 去重

注意事項:

(1). 如果只是檢查 entry 中是否有物件,應該用 entry.objects.all().exists()

(2). queryset 支援切片 entry.objects.all()[:10] 取出10條,可以節省記憶體

(4). list(es) 可以強行將 queryset 變成 列表

詳細內容可參考:自強學堂

Django中的一些基礎配置

urls.py裡面的path 引數 settings.py 預設開啟的某些應用至少需要乙個資料表。使用互動式python命令列嘗試django建立的各種api python manage.py shell question.objects.all 對於我們了解這個物件的細節沒有幫助。所以在model...

Django中的admin一些方法

1.配置admin應用 在專案下終端中輸入 pytyhon maange.py createsuperuser 依次輸入使用者名稱,郵箱,密碼 3.漢化 在settings中 language code en us 改為 language code zh hans time zone utc 改為 ...

Django資料庫的一些操作

之前寫了一篇django中資料庫的配置 現在寫一些其他的命令 products init py models.py tests.py views.py 採用 python manage.py validate 檢查模型的語法和邏輯是否正確。這裡提示可以用check替代validate,進行替代就行了...