djago数据库操作扩展

使用sql语句操作django数据库:

  1. 导入包、类Poet
  2. 使用sql语句:Poet.objects.raw('select * from item_poet'): 使用Poet.objects获得一个管路类对象调用raw方法,注意sql语句中数据表是数据库中的表名,而不再是类名。
  3. raw方法返回一个RawQuerrySet集合,可以使用下标获得Poet对象如:Poet.objects.raw('select * from item_poet')[0]获得<Poet: 李白>

管理查询注意使用一方查询多方,否则会报错。如Poet对应多个Item,此时只能使用Poet.objects.filter(id=F('item__ipeo_id'))来查询获得Poet对象,而不能反过来利用Item获得Item对象

多对多关系:

  1. 定义字段定义在哪?一般来说,拥有ManytoMAny字段的类在创建时比较方便,在创建该类时可以选择另一类的实例,但对应来说,一般会用另一类查询。为了操作方便会定义在创建方便的类方,查询时使用类set方法查询。如:一个文章Artical对应多个标签Tag,一个标签也对应多个文章;查询时通常查询一个Tag下有多少个文章Artical,但我们会把ManyToMany定义在Artical中,这样文章有了Tag字段就可以在创建文章时选择标签,而不是在创建标签时选择文章。另一个类时,可以使用t = Tag(...), t.save(), t.artical_set.add(int_articalid,...)来查询添加。**查询时,使用t.artical_set.all()**方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值