Django框架知识点

Shell

生成迁移文件
python manager.py makemigrations <appname>
执行迁移
python manager.py migrate
反向迁移
python manager.py inspectdb <appname>

ForeignKey属性

  1. db_constraint:当设置为False时,数据库中不存在连接,可以通过ER图看。
  2. on_delete:可选字段:
    models.CASCADE:级联删除
    models.SET_NULL:设置为null,前提是null = True
    models.SET_DEFAULT:设置为默认值,前提是有default属性,即default='what’
    models.DO_NOTHING:什么都不做
    models.PROTECT:删除时触发异常,保护数据
  3. related_name:被关联模型类的对象可以通过此值来访问,可以看做本模型类在被关联模型类中的外键,设置为 + 不可访问。

QuerySet的方法

  1. get:可能引发异常
  2. filter:过滤(要)
  3. exclude:滤除(不要)
  4. reverse:反转
  5. all,所有结果
  6. exits:返回True或者False
  7. count:计数,不会查询数据集,比Len要好用
  8. order_by:按’field’排序,默认排序:在model定义的ordering
  9. values:将结果转换为字典的列表,每一个字典代表一个对象
  10. values_list:将每个对象的字段的值转换为元组,得到的一个元组的列表。
  11. exact,=|iexact:精确匹配/忽略大小写的精确匹配
  12. __contains / __icontains,__startswith / __istartswith , __endswith / __iendswith:包含 | 以什么开始 | 以什么结束
  13. __in | __range:集合运算
  14. __gt,__gte|__lt,__lte:大于,大于等于|小于,小于等于
  15. aggregate()/annotate():用法类似,aggregate返回的是字典,其中可以指定key的值,annotate将计算结果作为属性附加到数据中。一般配合Count,Max,Min,AVG,Sum使用。
  16. raw,extra,可以写原生sql,可以将sql关键字作为参数;之外,可以通过建立连接,移动指针的方式写原生sql。
   from django.db import connections
   with connections['...'].cursor() as cursor:
       cursor.execute('sql语句')
       row = cursor.fetchall()
  1. F对象和Q对象:F对象用来操作当前查询的字段,或模型类中两字段的比较;Q对象用来进行复杂查询,可以通过& | ~进行与或非的查询

模型管理器

class BookManager(models.Manager):
    
    def title_count(self, keyword):
        return self.filter(title__icontains=keyword).count()

class Book(models.Model
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值