Django(part28)--F对象(django to_field)

网友投稿 308 2022-08-31


Django(part28)--F对象(django to_field)

学习笔记,仅供参考

F对象

在Django中F是指一个类,我们可以通过这个类创建一个对象。

一个F对象代表数据库中某个字段(列)的信息,F对象通常是对数据库中的字段值在不加载到内存中的情况下直接在数据库服务器端进行操作。F对象在数据包 django.db.models 中,当我们使用时,需要通过如下语句进行加载:

from django.db.models import F

作用

在执行过程中获取某列的值,并对其直接进行操作;

在同时比较数据库中两个字段的值时,也可以使用F对象。

语法

from django.db.models import FF('列名')

举个例子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.00python 出厂价: 35.00 零售价: 40.00R 出厂价: 35.00 零售价: 40.00


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ZooKeeper入门教程二在单机和集群环境下的安装搭建及使用
下一篇:Django(part27)--聚合查询(django 分组聚合)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~