1. 程式人生 > >模型層單表操作

模型層單表操作

模型層單表操作

單表操作

例:

1. 單表的查詢

1. 單表查詢所有使用者:models.Book.objects.all()
得到的是 queryset物件(當成列表),列表裡面,一個一個的物件[user1,user2]
​
2. render(request, 'booklist.html', {'book_list': ret})
​
3. 模板裡: {% for user in book_list %}
                #要迴圈的內容 
                {{book.name}}
            {% endfor%}
            
4. get請求攜帶引數: http://127.0.0.1:8000/deleteuser/?id=1 後臺取值:request.GET.get('id') request.GET['id'] 5. 前臺post提交的資料取值:name=request.POST.get('name')

 

查詢的API
all():                  查詢所有結果
  
filter(**kwargs):       它包含了與所給篩選條件相匹配的物件
  
get(**kwargs):          返回與所給篩選條件相匹配的物件,返回結果有且只有一個,如果符合篩選條件的物件                        超過一個或者沒有都會丟擲錯誤。
  
exclude(
**kwargs): 它包含了與所給篩選條件不匹配的物件 order_by(*field): 對查詢結果排序('-id') reverse(): 對查詢結果反向排序 count(): 返回資料庫中匹配查詢(QuerySet)的物件數量。 first(): 返回第一條記錄 last(): 返回最後一條記錄 exists(): 如果QuerySet包含資料,就返回True,否則返回False values(
*field): 返回一個ValueQuerySet——一個特殊的QuerySet,執行後得到的並不是一系列 model的例項化物件,而是一個可迭代的字典序列 values_list(*field): 它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列 distinct(): 從返回結果中剔除重複紀錄

 

基於雙下劃線的模糊查詢
Book.objects.filter(price__in=[100,200,300])
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__gte=100)
Book.objects.filter(price__lte=100)
Book.objects.filter(price__range=[100,200])
Book.objects.filter(title__contains="python")
Book.objects.filter(title__icontains="python")
Book.objects.filter(title__startswith="py")
Book.objects.filter(pub_date__year=2012)

 

2. 單表的刪除

關鍵字: delete()
models.Book.objects.filter(id=id).delete()

 

3. 單表的增加

兩種方式:
    1 book_obj=Book.objects.create(title="python葵花寶典",state=True,price=100,publish="蘋果出版社",pub_date="2012-12-12")
    
    2 book_obj=Book(title="python葵花寶典",state=True,price=100,publish="蘋果出版社",pub_date="2012-12-12")
book_obj.save()

 

4. 單表的修改

關鍵字: update()
Book.objects.filter(title__startswith="py").update(price=120)

 

前後端互動

<form action="/updateuser/?id={{ book.id }}" method="post">
   <p><input type="hidden" name="id" value="{{ book.id }}"></p>
   <p>書名: <input type="text" name="name" value="{{ book.name }}"></p>
   <p>價格: <input type="text" name="price" value="{{ book.price }}"></p>
   <p>出版社: <input type="text" name="publish" value="{{ book.publish }}"></p>
   <input type="submit" value="提交">
</form>