django_models元数据Meta以及增删改查命令

本文介绍了Django中Model的Meta元数据使用,以及如何进行Foreignkey一对多字段的反向查询,特别是如何通过`_set.all()`进行检索操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


元数据Meta
固定的格式meta:固定的参数:
ording:按那个数据字段排序
verbose_name:数据表的别名(一个直观的名字)
abtract=True:抽象类
db_table:设置生成的表名。默认为类名
verbose_name_plural:数据表的复数名

在Django中,继承并不继承父类的Meta元数据

数据库查询操作
1、保存数据
    1)b=Blog(......)
    b.save()
    2)c=Blog.objects.creats(......)
注意:关键字objects
xxx.objects.create创建一条数据
xxx.objects.get 查询一个数据
xxx.objects.get_or_create  查询一条数据如果没有则创建
2、检索所有的对象
xxx.objects.all()
xxx.objects.filter(name='xxx') 返回所有符合条件的结果
    1)切片查询
    all()[:2] 返回前两个结果
    
3、链式检索
上述filter的结果依然可以继续调用filter方法
xxx.objects.get(name='xxx').filter(age=18)返回名字‘xxx’age=18的数据

查询操作时的(filter、get)参数。

pk=1:主键查询也就是id=1

4、删除操作。delete()方法。。xxx.delete()

5、复制数据
先把一个数据实例的pk值设置为None,再重新保存
c=Blog.objects.get(name='xxx')
c.pk=None
c.save()  这样并不是真得把数据实例的id设置为None。而是相当于copy。当保存时就被复制了

6、更新操作update
Blog.objects.get(name='xxx').update(name='ooo')  返回影响到的数据条数
7、exclude(name='xxx')反向查询,查询所有不符合条件的数据

7、foreignkey一对多字段的反向查询(这个一拥有多少个绑定在自己身上的数据)

【一实例】.【多模型】__set.all()这样的查询语句  

该语句返回一个结果集,依然可以用Filter、get等查询语句检索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值