Django(part28)--F对象
生活随笔
收集整理的這篇文章主要介紹了
Django(part28)--F对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
F對象
在Django中F是指一個類,我們可以通過這個類創建一個對象。
一個F對象代表數據庫中某個字段(列)的信息,F對象通常是對數據庫中的字段值在不加載到內存中的情況下直接在數據庫服務器端進行操作。F對象在數據包 django.db.models 中,當我們使用時,需要通過如下語句進行加載:
from django.db.models import F- 作用
在執行過程中獲取某列的值,并對其直接進行操作;
在同時比較數據庫中兩個字段的值時,也可以使用F對象。
- 語法
- 舉個例子1
現在,我們要將所有作者的年齡加1.
在Django shell中輸入如下命令:
In [30]: models.Author.objects.all().update(age=F('age')+1) Out[30]: 5我們再看看數據表
mysql> select * from bookstore_author; +----+--------+-----+----------------------+ | id | name | age | email | +----+--------+-----+----------------------+ | 1 | 山羊 | 20 | goatbishop@gamil.com | | 2 | 小黃 | 11 | 1033794241@qq.com | | 5 | 小黑 | 13 | xiaohei@gmail.com | | 6 | 小白 | 19 | xiaobai@gmail.com | | 7 | 山羊哥 | 28 | biggoat@gmail.com | +----+--------+-----+----------------------+ 5 rows in set (0.00 sec)很好,年齡都加1了。
- 舉個例子2
現在,我篩選出出廠價exfacPrice小于零售價price的記錄。
我們先看一下bookstore_book數據表:
mysql> select * from bookstore_book; +----+-------------------+----------------+------------+-------+ | id | title | pub | exfacPrice | price | +----+-------------------+----------------+------------+-------+ | 1 | Djangoweb開發實戰 | 清華大學出版社 | 35.00 | 40.00 | | 2 | python | 機械工業出版社 | 35.00 | 40.00 | | 3 | R | 人民郵電出版社 | 35.00 | 40.00 | | 4 | 數據處理 | 清華大學出版社 | 45.00 | 40.00 | | 5 | 算法 | 人民郵電出版社 | 45.00 | 30.00 | | 6 | 小黃 | 黑山羊出版社 | 45.00 | 30.00 | +----+-------------------+----------------+------------+-------+ 6 rows in set (0.00 sec)在Django shell中輸入如下命令:
books = models.Book.objects.filter(price__gt=F('exfacPrice')) for book in books:print(book.title, '出廠價:', book.exfacPrice, '零售價:', book.price)輸出:
Djangoweb開發實戰 出廠價: 35.00 零售價: 40.00 python 出廠價: 35.00 零售價: 40.00 R 出廠價: 35.00 零售價: 40.00總結
以上是生活随笔為你收集整理的Django(part28)--F对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用美图秀秀PS世界名画蒙娜丽莎--纯属娱
- 下一篇: Django(part29)--Q对象